问:数据量大了就一定要分库分表吗?
答:分库分表不能一概而论,分库分表有自己的应用场景,以及他要解决的问题。
1. 只分库不分表:
在什么时候应该选择只分库不分表呢?,当数据的 访问量过高 或者 出现数据库连接不够 用的情况,这个时候我们就需要考虑分库,通过去增加数据库实例的方式来获取更多的数据库连接,从而去提高系统的并发的性能。
2. 只分表不分库:
在什么时候需要进行分表呢?,我们当单表的存储的数据量非常大的情况下,并且并发量也不高,数据连接也还够用,但是数据写入和查询的性能都出现了瓶颈,那么这时候我们就需要考虑分表了,那么将数据拆分在多张表中去减少单表的存储的数据量,从而去提高表的读写效率。
3.既要分库又要分表:
在什么时候既要分库又要分表呢?,我们结合前面的两种情况,如果说同时满足,数据连接也不够用了,并且单表的数量也非常大,从而导致数据库的读写速度变的非常慢的情况下,这个时候我们就要考虑既要分表又要分库了。
以上所述只是每一种情况的使用场景,并不是绝对的。
在 AL 并发手册中建议,当我们单表数据超过500万行,或者是单表的容量超过 2G 的时候才推荐分库分表。