MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
rateltalk
V2EX  ›  MySQL

左连接表查询用到了索引,为何还是走全表扫描?

  •  
  •   rateltalk ·
    shangdev · Sep 21, 2022 · 2549 views
    This topic created in 1368 days ago, the information mentioned may be changed or developed.


    如图,t2 表走索引只有 37 行,左连接表 t1 也用到了索引,但是走的却是全表扫描。

    请教这个是什么情况,怎么优化呢、
    Supplement 1  ·  Sep 22, 2022
    确实走索引了,我误以为查所有记录数就是没走索引、、
    10 replies    2022-09-22 08:13:04 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       Sep 21, 2022
    哪里全表扫描了?
    不是写了一个是主键一个是索引么?
    kera0a
        2
    kera0a  
       Sep 21, 2022
    t1.id 和 t2.file_id 的编码一样么?
    rateltalk
        3
    rateltalk  
    OP
       Sep 21, 2022
    @liprais 但是 t2 表总行数也是 113283
    rateltalk
        4
    rateltalk  
    OP
       Sep 21, 2022
    @liprais 说错了,是 t1 表
    F281M6Dh8DXpD1g2
        5
    F281M6Dh8DXpD1g2  
       Sep 21, 2022
    你知道 left join 啥意思么?
    @s609926202
    Wdafff
        6
    Wdafff  
       Sep 21, 2022
    先条件过滤再 join
    nekoneko
        7
    nekoneko  
       Sep 21, 2022
    没问题啊
    lookStupiToForce
        8
    lookStupiToForce  
       Sep 21, 2022
    key 里用到 PRIMARY ,怎么会是全表扫描
    你可以再确认一下 t2 那 37 条数据是否真的能关联到 11w+行,如果确认这个估计有错误,可以 analyze 一下 t1 表
    xuanbg
        9
    xuanbg  
       Sep 21, 2022
    这个执行计划里面没有全表扫描啊,不是很正常的一个查询么。。
    hscovo
        10
    hscovo  
       Sep 22, 2022
    left join 我理解就是取出左表的每一行记录,去右表里面查询吧?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1139 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 17:29 · PVG 01:29 · LAX 10:29 · JFK 13:29
    ♥ Do have faith in what you're doing.