一.结构化数据的存储
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。
- 水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。
- 通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;
- 通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;
- 通过读写分离策略更是最大限度了提高了应用中读取(Read)数据的速度和并发量。
1、what?什么是数据切分
通过一系列的切分规则将数据水平分布到不同的DB或table中,在通过相应的DB路由或者 table路由规则找到需要查询的具体的DB或者table,以进行Query操作。这里所说的“sharding”通常是指“水平切分”。具体将有什么样的切分方式呢和路由方式呢?接下来举个简单的例子:我们针对一个Blog应用中的日志来说明,比如日志文章(article)表有如下字段:
article_id(int)