MySQL 是单进程多线程,那么在单台服务器上进行分库有意义吗?分库是怎么提升并发处理能力的呢?

2018-11-15 10:35:36 +08:00
 pudgedoor

刚刚在看 MySQL 的分库分表博客有感,网上大部分只说了分库就能提升并发处理能力,但是查了半天也没发现有人说为什么,在同一个服务器上 IO 不是由机器限制了吗,那么在同一个服务器上,提升 database 的数量有什么用呢?

3970 次点击
所在节点    问与答
10 条回复
glacer
2018-11-15 11:59:15 +08:00
分库后单库数据量变小,下推到分库的 SQL 查找的数据量也变小了,减少了 CPU 的使用量。
pudgedoor
2018-11-15 14:52:46 +08:00
@glacer 谢谢,不过还是不太理解。数据量变小那不是和分表一样吗?为什么分库就能提升并发性能呢,分表就只能加快查询速度呢?
xttanwei
2018-11-15 14:55:08 +08:00
因为分表分库后,单次查询效率提升了,所以并发性能也有提升撒。
wly19960911
2018-11-15 15:38:50 +08:00
锁的问题吗,不熟悉数据库锁的路过,如果是考虑到锁机制的话,还是有影响的,毕竟不同的等级对库的性能都影响很大
pudgedoor
2018-11-15 15:48:56 +08:00
@wly19960911 锁这个概念应该是对 table 而言吧
pudgedoor
2018-11-15 15:52:43 +08:00
@xttanwei 我可以理解分表可以提升单次查询效率,毕竟单表数据少了,但是为什么分库也可以提升单次查询效率?比如说根据 id 查询,分表后,单表数据少了,根据 id 检索当然更快了,但是为什么分库可以更快呢?
xttanwei
2018-11-15 19:30:53 +08:00
@pudgedoor 大部分的分库都是进行了业务或者数据上的区分,对应的业务实现也会有相应的模块化,所以降低了业务复杂度,最终提升了查询效率
autogen
2018-11-15 19:45:50 +08:00
mysql,单表 1000 万条记录就是极限了。。。
ETiV
2018-11-15 19:48:14 +08:00
当木桶看

- IO 短板的时候,再怎么分也没用
- 需要处理的数据量短板的时候,分就有用了
msg7086
2018-11-16 01:27:37 +08:00
你可以看看是谁说的,然后问他们?我是没觉得分库比分表有太大的优势……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/508038

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX