问题标签 [explain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
276 浏览

mysql - 使用 Order By 的慢速 SQL 查询

我远离 SQL 大师,我正在尝试执行:

order by 比没有 order by 慢 20 倍。

给我 :

我已经尝试了 app_id、similar_app_id 上的所有索引组合以及它们的组合。

任何提示或技巧?

谢谢

0 投票
1 回答
762 浏览

mysql - 未使用 mysql 5.1.37 查询索引

我有一个表现不佳的查询。服务器版本:5.1.37-1ubuntu5.1(Ubuntu)

该表中有 547545 行。

如您所见,说明具有可能的密钥,但未使用实际密钥显示它。

有任何想法吗?似乎这应该可行,而我正在做一些愚蠢的事情。

0 投票
3 回答
6877 浏览

mysql - SELECT 语句不使用 possible_keys

我有一个来自遗留系统的表,它没有主键。它记录了工厂发放材料的交易数据。

为简单起见,假设每行包含 job_number、part_number、quantity 和 date_issued。

我在发布日期列中添加了索引。当我运行 EXPLAIN SELECT * FROM issue_parts WHERE date_issued > '20100101' 时,它显示如下:

所以它看到了密钥,但它不使用它?有人可以解释为什么吗?

0 投票
3 回答
22952 浏览

mysql - MySQL解释:是什么导致'使用临时; 使用文件排序'

我计划使用这个 SQL SELECT 创建一个视图,但它的解释显示它正在使用临时和使用文件排序。我无法弄清楚我需要什么索引来解决这个问题。大多数情况下,我想知道为什么它使用文件排序而不是使用索引进行排序。

这是我的表:

这是我计划在我看来使用的有问题的 SQL 语句:

解释的输出:

另一个例子,这次使用 where 子句:

解释输出:

0 投票
2 回答
1433 浏览

mysql - 如何使用mysql的EXPLAIN寻找可能的问题

显然,对网站进行压力测试,一切都在崩溃。

今天的问题:几页上的WSOD。几个小时后,我将一页上的问题缩小这个查询(我希望):它曾经在一秒钟内运行;现在它需要> 300。

运行EXPLAIN我得到这个:

看看EXPLAIN有没有可能告诉

  • 如果发生任何全表扫描
  • 如果缺少任何相关的切口
  • 哪个表或连接太慢了
  • 我的“寻找慢表”中的任何其他有用信息

更新:在没有 group_by (和相关的表连接)的情况下再次运行查询;仍然需要一个临时表和文件排序,所以它似乎是一个索引问题。将开始查看缺失索引的所有表。

0 投票
3 回答
764 浏览

mysql - 为什么这个查询需要这么长时间?

此查询出现在我在 mysql 系统上的慢速日志中,

您看到它检查了 405,199 行,这可能是查询时间长的原因吗?

类似的查询从未出现在我的慢日志中,该查询是:

这是解释的输出:

0 投票
2 回答
3699 浏览

mysql - MySQL 命令解释忽略限制?

我使用 MySQL 服务器版本 5.5.14,现在我正在尝试使用 Explain 命令进行这个简单的 SQL 查询:

它向我展示了这个结果:

我的问题是为什么它扫描整个表而不是像我在 LIMIT 子句中指定的那样获取前 10 行?

0 投票
1 回答
142 浏览

mysql - 2个完全相同的mysql查询给出2个不同的“解释”输出:为什么?

我发现了一个非常奇怪的 mysql 行为:当我两次运行特定查询时,第二次对该查询的解释不同:

这怎么可能?

0 投票
4 回答
478 浏览

mysql - 使用 IN 子查询改进 MySQL 查询

我有一张桌子items和一张桌子item_attributes

为简单起见,假设我的表项有一个 columnid和一个 column name。当然,列上有一个索引id

item_attributes表具有列id、和item_id,并且索引为 ONattribute_nameattribute_valueattrubute_name

现在我想在不使用连接的情况下查询具有特定属性的所有项目。

我使用以下查询执行此操作:

SubQuery 本身运行速度很快。

如果我先执行查询本身并将结果用于 IN 查询

它也很快。

但是,组合查询非常非常慢(> 2 秒)。如果我调查查询计划,我会明白原因:MySQL 对 items 表进行全表扫描,而不是先执行子查询并将结果用于索引查询.

有没有办法优化这个查询?我知道子查询将始终只返回一个小的结果集(<100 行)。

0 投票
4 回答
455 浏览

mysql - mySQL - 如何解释我的 EXPLAIN 结果并优化此查询?

希望了解我的EXPLAIN结果在这里的含义,并尽我所能优化此查询和我的表。

查询:

(编辑格式)

解释结果: