你已经用一个直观的、用户友好的用户界面启动了你的应用程序。但是,如果你的应用程序遇到负载问题,这将使你的终端客户在使用它时感到沮丧。很有可能问题不在应用程序内部,而是在数据库。根据一项调查,38%的数据库专业人员报告说数据库停机是让他们夜不能寐的重要问题。停机可能是由于任何数量的问题,包括不当的数据库配置、不良的负载处理、数据库查询超时,等等。在这篇文章中,我们将讨论你是否需要扩展你的数据库以及如何解决数据库的可扩展性问题。让我们从最明显的问题开始--为什么要进行数据库扩展?
为什么要扩展你的icode9数据库?
你的应用程序的数据库应该能够扩展或收缩其计算资源,以配合应用程序的动态需求。例如,你的数据库应该能够扩大规模以处理突然激增的流量。另外,当不在状态时,你的数据库应该能够收缩以节省资源。确保良好的数据库扩展性的最好方法之一是根据你的要求选择合适的数据库。对于物理服务器,数据库的扩展和收缩可能是一个令人头痛的问题。云数据库解决方案可以做到这一点。
数据库的可扩展性是一项资源密集型和挑战性的任务。因此,在开始项目之前,你需要确保你的产品需要一个可扩展的数据库。首先,确定你的产品在可预见的未来是否会出现流量激增的情况。如果没有,你仍然可以用你的旧数据库来做。
如果你的icode9企业是一个初创企业,那么在获取可扩展数据库方面投入资源是没有意义的。你可以在你的应用程序达到临界质量并期待流量的良好激增时再这样做。
下面是一些需要数据库可扩展性的情况:
你的应用已经过时了,你想迁移到云系统上
你的应用程序经历高负荷
你的应用程序需要符合法规的要求
你希望有一个平衡的工作负载,可以为世界各地的用户提供服务
数据库扩展解决方案
1. 缓存数据库查询
提高数据库负载处理能力的最直接的方法之一是缓存数据库查询。通常情况下,一个应用程序只有少数几个查询构成了大部分的请求。你可以对这些查询进行缓存,这样在将来,这些请求就可以从缓存中读取。这样就不需要每次都从数据库中获取数据了。用户很快就能得到所需的数据。这样一来,缓存有助于提高数据库的性能。
亚马逊ElastiCache是一种缓存服务,可以帮助你缓存数据库。有了Amazon ElastiCache,你可以通过内存缓存进行扩展。Amazon ElastiCache支持实时用例。
游戏排行榜
分析
流媒体
2. 数据库索引
扩展数据库并不总是意味着在现有设置中增加更多的数据库。有时,通过优化当前的数据库,你可以在一定程度上进行扩展。这就是数据库索引发挥作用的地方。使用数据库索引技术,你正在构建数据,以提高从数据库表中检索数据的速度。
3. 数据复制
数据复制是一种策略,用于制作相同的数据库副本以创建额外的机器。复制策略有利于解决峰值负载问题。由于数据被复制,查询可以分散在多个数据库中,这反过来会减少单个数据库的负载。此外,万一存储设备发生故障,复制的数据就会派上用场,系统仍然可以全面运作。
4. 分片
扩展数据库的主要瓶颈之一是设计不当的数据库。为了确保你不面临这个瓶颈,必须从为正确的业务应用选择正确的数据库开始。比如:
一家银行应该选择关系型DBMS,以确保其结构化数据的ACID(原子性、一致性、隔离性、耐久性)。
一个在线多人游戏可以依靠键值无SQL数据库
无论你选择哪个数据库,都要确保它有分片功能。分片是指将数据库的一个大块分割成较小的数据块,称为分片,可以跨多个数据库存储。有两种类型的分片:
水平分片
垂直分片
当你的数据库查询返回一个数据行的子集时,水平分片证明是有效的。这些行通常被分组。例如,数据被过滤的查询是基于短的日期范围。
当你的数据库查询返回数据的列的子集时,垂直分片证明是有效的。例如,如果一些数据库查询只要求名字,而另一些只想要城市,那么垂直分片在这种情况下证明是有效的。
标签:数据库,站点,文件,架构,数据,服务器,创建,结束,设置,解决方案 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。