取决于您要查询的内容和查询的内容。
通常,对于EXPLAIN中每个具有的行
Using where,您都需要使用索引(
possiblekeys和
keys列)来使它。这些是您的过滤器,包括WHERe和ON。说得
Usingindex更好。这意味着有一个覆盖索引,MySQL可以直接从索引中检索数据,而不必访问表数据中的行。
Usingwhere应该查看没有的行,它返回大量行。这些是表中所有行的返回值。我不知道您的查询是什么,所以我不知道是否在这里被提醒。尝试过滤结果集以减小大小并提高性能。
通常,您应该尽量避免看到
Using filesort或
Using temporary,尽管只有在不期望它们的情况下它们才是不好的。
Filesort通常与ORDER子句一起出现。通常,您希望MySQL使用覆盖索引(
Usingindex),以便已按顺序从服务器返回行。如果不是,则MySQL必须在以后使用文件排序对其进行排序。
Usingtemporary当它引用派生表时可能会很糟糕,因为它们没有索引。看来您已经用索引明确创建了一个临时表,所以在这里还不错。有时,您唯一的选择是使用派生表,因此
Usingtemporary。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)