如何基于EXPLAIN计划优化MySQL查询

如何基于EXPLAIN计划优化MySQL查询,第1张

如何基于EXPLAIN计划优化MySQL查询

取决于您要查询的内容和查询的内容。

通常,对于EXPLAIN中每个具有的行

Using where
,您都需要使用索引
possiblekeys
keys
列)来使它。这些是您的过滤器,包括WHERe和ON。说得
Usingindex
更好。这意味着有一个覆盖索引,MySQL可以直接从索引中检索数据,而不必访问表数据中的行。

Usingwhere
应该查看没有的行,它返回大量行。这些是表中所有行的返回值。我不知道您的查询是什么,所以我不知道是否在这里被提醒。尝试过滤结果集以减小大小并提高性能。

通常,您应该尽量避免看到

Using filesort
Using temporary
,尽管只有在不期望它们的情况下它们才是不好的。

Filesort通常与ORDER子句一起出现。通常,您希望MySQL使用覆盖索引(

Usingindex
),以便已按顺序从服务器返回行。如果不是,则MySQL必须在以后使用文件排序对其进行排序。

Usingtemporary
当它引用派生表时可能会很糟糕,因为它们没有索引。看来您已经用索引明确创建了一个临时表,所以在这里还不错。有时,您唯一的选择是使用派生表,因此
Usingtemporary



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5022417.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存