分库分表是解决 MySQL 单库单表性能瓶颈的常见手段,但并不是所有场景都适合分库分表。分库分表会带来额外的复杂性和维护成本,因此在决定是否分库分表之前,需要仔细评估。
1. 数据量评估
1.1 单表数据量
- 标准:单表数据量超过 千万级(10M)时,需要考虑分表。
- 原因:
- 数据量过大会导致查询性能下降。
- 索引维护成本增加,写入性能下降。
- 备份和恢复时间变长。
1.2 单库数据量
- 标准:单库数据量超过 百亿级(10B)时,需要考虑分库。
- 原因:
- 单库存储容量有限,可能达到磁盘或文件系统的上限。
- 单库的 I/O 压力过大,影响性能。
2. 性能评估
2.1 查询性能
- 标准:查询响应时间明显变慢,即使优化索引和查询语句后仍无法满足需求