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

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

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

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

阅读 1.7k
1 个回答

分库必分表

分表不分库有什么用?

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题