MySQL分库分表详解
摘要:本文是MySQL第七讲:MySQL分库分表详解流程,非常全面的总结,强烈建议保存下来,在需要时看看
文章目录
1、什么是分库分表,何时要分库分表
背景知识:
1、海量数据的存储问题
- 传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。有些场合NoSQL是无法满足使用场景的,比如有事务与安全指标的。从单机mysql --》memcached+mysql+垂直拆分 --》mysql主从复制 --》分库分表+水平拆分+mysql集群
2、如果使用关系型数据库解决海量存储的问题呢?
- 此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储。
3、mysql性能瓶颈分析
- 数据库连接数,默认是100个连接数
- 单表数据量大,阿里规定单表数据量500万条 数据量大,IO操作就多
- 硬件资源(QPS/TPS 每秒查询数/每秒事务量)
4、大数据量数据库性能的解决方案?
- 分库分表
- 索引优化(数据量1个亿且查询不太复杂时,没什么问题)
- 读写分离