gpt4 book ai didi

mysql - EXPLAIN rows 总是返回表中的所有行

转载 作者:行者123 更新时间:2023-11-29 13:39:19 25 4
gpt4 key购买 nike

我正在尝试理解下面查询的 EXPLAIN 结果。我得到 rows=7 (表的总大小),但实际查询仅返回 1 行。解释结果中的 rows=7 是否意味着 MySQL 检查每一行仍得到此结果?

 EXPLAIN SELECT conversation_id FROM messages 
WHERE to_id = '355' AND timestamp < '1376856934' LIMIT 1;

只有 4 行有 to_id='355' 并且列 to_id 和时间戳都一起索引,所以我不明白为什么它必须扫描整个表才能获取 1 行。

最佳答案

EXPLAIN 输出中的“行”列是需要检查的行数的估计值。

查询是否实际上需要检查表中的每一行实际上取决于访问计划(在 EXPLAIN 输出中的其他列中显示)。例如,索引范围扫描操作不必查看每行row,仅特定索引范围内的行。但是完整扫描操作将查看表中的每一行。

根据“行”列返回的值无法回答您的问题;我们确实需要查看 EXPLAIN 的输出来确定 MySQL 是否正在使用索引范围扫描。

http://dev.mysql.com/doc/refman/5.5/en/explain-output.html

关于mysql - EXPLAIN rows 总是返回表中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18304136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com