如何决定对单表做分库还是分表?

这里不考虑微服务场景下的垂直分库需求,仅谈论单表的情况,例如常见的订单表(t_order)。
除了都能解决单表过大时的查询缓慢问题,分库和分表的区别,个人的理解如下:

  • 分库:相对与分表,分库提高的是数据库并发连接能力
  • 分表:仅降低B+Tree的高度,在并发连接不高的情况下,单库分表即可满足提高查询速度的需求。

所以对访问量不是很大,但单表很大的情况,只分表是不是就可以了?

阅读 1.9k
1 个回答

分库必分表

分表不分库有什么用?

数据库的瓶颈在哪里?不在 CPU,不在 RAM ,而是 ROM,也就是硬盘速度。

更加具体点就是硬盘的随机读写速度上。

分库分表可以提高 QPS 或者 TPS 的前提是:把库、表分到不同的机器上干活。

PS:理论上,分到一台机器的不同硬盘也还是可以提高 QPS 或者 TPS

推荐问题