V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dw2693734d
V2EX  ›  数据库

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

  •  
  •   dw2693734d · 2022-12-08 19:07:45 +08:00 · 818 次点击
    这是一个创建于 714 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    结论是有用:

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

    2. 按特定字段 /值分表,相当于手动实现了一遍“分区表”( https://developer.aliyun.com/article/75306 ),对于大数据量的查询肯定有显著提升 <-- 因为数据表大小实质上减少了,随机 IO 下磁头要扫过的范围也减少了;同时索引范围也减少了,索引效率也会有提升
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2819 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 14:59 · PVG 22:59 · LAX 06:59 · JFK 09:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.