dw2693734d
V2EX  ›  数据库

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

  •  
  •   dw2693734d · Dec 8, 2022 · 1428 views
    This topic created in 1259 days ago, the information mentioned may be changed or developed.

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

    dw2693734d
        1
    dw2693734d  
    OP
       Dec 8, 2022
    比如说 postgres 的 b-tree
    acerphoenix
        2
    acerphoenix  
       Dec 9, 2022
    还是不一样,比如 mysql,单表数据量太大会影响性能,不过一般到不了那么大而已
    yoahang
        3
    yoahang  
       Dec 9, 2022
    要考虑不走索引的情况吧
    7911364440
        4
    7911364440  
       Dec 9, 2022
    如果是横向分表的话,可以减少单表的数据量,也是可以提高性能的。
    dw2693734d
        5
    dw2693734d  
    OP
       Dec 9, 2022
    @acerphoenix
    @yoahang
    @7911364440

    可能插入会影响性能,但是索引查询好像不会
    lookStupiToForce
        6
    lookStupiToForce  
       Dec 26, 2022   ❤️ 3
    今天看到了,直接回一下

    结论是有用:

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

    2. 按特定字段 /值分表,相当于手动实现了一遍“分区表”( https://developer.aliyun.com/article/75306 ),对于大数据量的查询肯定有显著提升 <-- 因为数据表大小实质上减少了,随机 IO 下磁头要扫过的范围也减少了;同时索引范围也减少了,索引效率也会有提升
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1448 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 17:03 · PVG 01:03 · LAX 10:03 · JFK 13:03
    ♥ Do have faith in what you're doing.