提升性能,增加可用性。
当一个库的查询QPS过高,数据库的读写性能已经成为了整个服务器性能瓶颈,此时就需要考虑拆库,通过多个库来分担单个数据库的连接压力。
例如整个服务器对数据库的查询QPS 是 3500(每秒3500个请求),假设单库可以支撑 1000个连接数的话,那么就需要拆分成4个库。
另外,没有分库时,如果单个数据库发生意外,发生故障的影响就是100%,分成4歌库,单个 库发生故障的影响就是25%,还有75%的数据可用,恢复起来也更快。但也不是分库越多越好,也考考虑资源占用问题。
垂直分表就是把原来的表中的 很多列 拆分成多个表,这就解决了表的宽度问题。
通常垂直拆分按照以下原则进行:
水平分表是为了解决单表的数据量过大的问题。水平拆分的各个表的数据结构都是完全一致的。
常用的水平拆分的方法:
① 对id进行hash运算,例如取模:id % n, 那就是表的个数;
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/ArtAndLife/article/details/120735020
内容来源于网络,如有侵权,请联系作者删除!