有一个查询,在这个查询中,更改where条件的顺序会极大地影响其性能(5kvs700k rows_examined)。
奇怪的是,当我使用explain和explain for connection时,这两个版本的查询都有完全相同的计划。然而,当我运行它们时,被检查的行数却有很大的不同。从我所读到的情况来看,条件的排序并不重要,因为优化器将尝试修复查询,但这里的情况并非如此。我是不是遗漏了什么?
我使用的是MySQL 5.7
发布于 2022-10-13 21:40:52
对于一个查询,我已经看到了多达6种不同的解释方案。计划各不相同,因为:
ANALYZE TABLE刷新“统计信息”。(经常这样做没有任何区别。)EXPLAIN给出了一个估计,有时是非常粗略的估计。EXPLAIN FORMAT=JSON SELECT ...提供了更多信息。https://dba.stackexchange.com/questions/318178
复制相似问题