【问题标题】:MYSQL query EXPLAIN SELECTMYSQL 查询解释选择
【发布时间】:2012-09-17 06:14:08
【问题描述】:

EXPLAIN SELECT 某些表的结果有:

             type   possible_keys   key       Extra
table1       ref    fl              fl        Using where
table2       ref    PRIMARY,variant variant   Using where; Using index

如果想澄清两个表都使用“键”列的索引,但是我看不到表 1 的“使用索引”?我应该关心这个吗?

【问题讨论】:

  • 我很好奇:多个问号是什么意思?我只了解过单身人士。

标签: mysql select indexing key explain


【解决方案1】:

EXPLAIN Output Format 中所述:

EXPLAIN 额外信息

EXPLAIN 输出的 Extra 列包含有关 MySQL 如何解析查询的附加信息。以下列表解释了此列中可能出现的值。

[ deletia ]

  • Using index

    仅使用索引树中的信息从表中检索列信息,而无需执行额外的查找来读取实际行。当查询仅使用属于单个索引的列时,可以使用此策略。

如果Using index 不存在,索引仍可用于定位记录,但 MySQL 可能会获取完整记录以检索列数据。

【讨论】:

    【解决方案2】:

    如果您将其输出与查询中的过滤条件(行数等)进行比较,则 EXPLAIN EXTENDED 可能会有所帮助: EXPLAIN EXTENDED Output Format

    【讨论】:

    • 嗨 full.stack.ex,我尝试使用 EXPLAIN EXTENDED,它只是添加显示另外 1 个名为 Filtered 的列,我的所有表对此查询都有 100.00 值,可以吗?
    • 这是他们写的关于在这里使用 where:link, " 除非您特别打算从表中获取或检查所有行,否则如果 Extra 值不是,则您的查询可能有问题"看起来如果你在那里有“select *”,数据库会扫描所有行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    相关资源
    最近更新 更多