单节点数据库的分表有用吗?本质上是不是和索引是差不多的?

2022-12-08 19:07:45 +08:00
 dw2693734d

对于单节点数据库而言,分表和索引在本质应该原理差不多,应该在性能上没有区别吧?虚心请教下大家

843 次点击
所在节点    数据库
6 条回复
dw2693734d
2022-12-08 20:04:06 +08:00
比如说 postgres 的 b-tree
acerphoenix
2022-12-09 09:39:59 +08:00
还是不一样,比如 mysql,单表数据量太大会影响性能,不过一般到不了那么大而已
yoahang
2022-12-09 09:52:04 +08:00
要考虑不走索引的情况吧
7911364440
2022-12-09 11:11:55 +08:00
如果是横向分表的话,可以减少单表的数据量,也是可以提高性能的。
dw2693734d
2022-12-09 11:35:42 +08:00
@acerphoenix
@yoahang
@7911364440

可能插入会影响性能,但是索引查询好像不会
lookStupiToForce
2022-12-26 11:57:53 +08:00
今天看到了,直接回一下

结论是有用:

1. 大表的索引查询,可以降低 b+tree 层数
https://mp.weixin.qq.com/s/XX_NkIIf_PLyU4IE6lEEYQ

2. 按特定字段 /值分表,相当于手动实现了一遍“分区表”( https://developer.aliyun.com/article/75306 ),对于大数据量的查询肯定有显著提升 <-- 因为数据表大小实质上减少了,随机 IO 下磁头要扫过的范围也减少了;同时索引范围也减少了,索引效率也会有提升

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

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

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

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

© 2021 V2EX