全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 412|回复: 2

好好的系统,为什么要分库分表?

[复制链接]
发表于 2023-11-4 00:57:11 | 显示全部楼层 |阅读模式
本帖最后由 odmin 于 2023-11-4 01:00 编辑

为什么需要分表?#
做过报表业务的同学应该都体验过,一条 SQL 执行时间超过几十秒的场景。

导致数据库查询慢的原因有很多,SQL 没命中索引、like 扫全表、用了函数计算,这些都可以通过优化手段解决,可唯独数据量大是 MySQL 无法通过自身优化解决的。慢的根本原因是 InnoDB 存储引擎,聚簇索引结构的 B+tree 层级变高,磁盘 IO 变多查询性能变慢,详细原理自行查找一下,这里不用过多篇幅说明。

阿里的开发手册中有条建议,单表行数超 500 万行或者单表容量超过 2GB,就推荐分库分表,然而理想和实现总是有差距的,阿里这种体量的公司不差钱当然可以这么用,实际上很多公司单表数据几千万、亿级别仍然不选择分库分表。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-30 12:16 , Processed in 0.060273 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表