MySql 单表查询,只需查出所有主键,建立冗余表是否能提升性能。(SELECT A.id FROM A) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Eridani117

MySql 单表查询,只需查出所有主键,建立冗余表是否能提升性能。(SELECT A.id FROM A)

  •  
  •   Eridani117 2020 年 10 月 1 日 1346 次点击
    这是一个创建于 2032 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小白学生,实在找不到人问,百度了也不知道结果。
    似乎在实际场景中,缓存结果集会更好?
    更详细地说:MySql 查询时是对整个表一行一行扫描;还是对与 主键、结果、条件 相关的列,单独一行一行扫描,跳过无关的列?

    6 条回复    2020-10-01 21:21:19 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       2020 年 10 月 1 日
    你想想行存的怎么跳过无关的列?
    crclz
        2
    crclz  
       2020 年 10 月 1 日
    使用“覆盖索引”。
    Jooooooooo
        3
    Jooooooooo  
       2020 年 10 月 1 日   1
    你搜下索引结构

    就能明白是咋搜索的
    GGGG430
        4
    GGGG430  
       2020 年 10 月 1 日   1
    看你的 where 条件吧,

    如果没有 where 条件, 则直接返回主键索引的所有值 (直接横向扫描主键索引 b+tree 的所有叶子节点, 返回其中存储的 key);

    如果有 where 条件且所有列正好用上了一个索引(覆盖索引), 这个时候就只会扫描命中的这个普通索引, 你查的主键值就存储在普通索引的叶子节点中, 直接就返回结果;

    如果有 where 条件且查询的部分列用上了索引, 这个时候就会走普通索引-主键索引-服务层一条一条的请求引擎层当前命中的行, 然后根据剩下未命中的列过滤这些数据, 最后返回结果;

    如果有 where 条件且没有命中索引, 则全表扫描, 一行一行的调用存储引擎获取每一列的数据;

    前面也有人说了, 去了解一下 b+tree 吧, 常见的 InnoDB 和 MyISAM 都用这个
    GGGG430
        5
    GGGG430  
       2020 年 10 月 1 日
    另外, 一个表冗余另一个的所有主键, 实在没有必要, 无意义
    wangyanrui
        6
    wangyanrui  
       2020 年 10 月 1 日 via Android
    如四楼所述,描述的挺好的,点个赞
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     914 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 19:23 PVG 03:23 LAX 12:23 JFK 15:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86