分库分表

mysql的分库分表一般用于单库整体数据量太大,或者单表的数据量太大了,这种情况会进行分库分表,回想一下自己做过的项目,也就少有的几个用到了分库分表。最近学到一个观点,就是做技术学习的时候多问几个为什么,那么就从为什么要做分库分表说起。

为什么要做分库分表

先说分表吧,正常索引加得好,一个表千万级别的数据是没问题的,主索引三层索引1170 * 1170 *16 = 21902400,可以存2千万条数据。
之前也有见过数亿条数据的大表,走索引查询也很快,不过后面还是推了分库分表,毕竟还是稳妥起见。
对于数据量比较大的表,除了数据条数较多,会导致索引树更高,需要更多次磁盘IO外,还有就是单条数据的问题,单条数据过大,磁盘按页存储,每页存储的数据量更少,进行范围查询时,产生跨页的可能性也更大,同时,mysql缓存中缓存的数据条数也更少,导致miss的可能性更大。
上面是说到表比较大的情况,再看下库数据比较大的情况,现在普通的mysql数据库都是主从结构的,所以从负载、连接数上来说也好,但是写流量只能到主库上,不进行分库的话也会影响写入的效率,并且单库数据量太大了,只能在单台机器上进行磁盘、cpu的升级,不能水平扩展。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容