问题标签 [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 投票
2 回答
3640 浏览

sql - ORACLE:解释插入计划

当我执行以下语句时,我想知道为什么该值没有插入到表中。那是对的吗?是否可以插入值并观看解释计划?

0 投票
1 回答
11393 浏览

mysql - EXPLAIN 打印中的额外内容 - '在阅读 const 表后不可能注意到 WHERE'

我有一个名为“million_words”的简单表格。它有一行两列-> id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY & word VARCHAR(50 NOT NULL.

我运行此查询-:EXPLAIN SELECT * FROM million_words WHERE word = '-anon'

Extra列然后打印 : 'Impossible WHERE noticed after reading const tables,即使该行清楚地存在于表中。

怎么了

0 投票
1 回答
225 浏览

mysql - 使用 IN() 子句导致 Filesort

我有一张简单的桌子->

我的表引擎是MyISAM.

我有一个多列索引combo1调用by_id,posted_on,id

我运行这个查询->

ExtraUsing where和关键列说combo1

但是,当我运行这个查询时->

ExtraUsing where; Using filesort和关键列说combo1

为什么filesort即使 QEP 显示优化器正在使用索引组合 1,它在其中索引了“id”,也会在第二种情况下发生。

0 投票
2 回答
1686 浏览

mysql - LEFT JOIN 比 INNER JOIN 快得多

我有两张桌子->

  • 用户

    /li>
  • ping

    /li>

我运行这个查询->

Extrapimgs下的列表示Using where; Using temporary; Using filesort,users 下的列表示Using where; Using join buffer

我运行这个查询->

Extrapimgs下的列表示Using where,而 users 下的列是空的。

怎么了?

0 投票
1 回答
175 浏览

mysql - 对 WHERE 语句中的 OR 进行全表扫描

所以我有这个查询

它正在对表 r 执行全表扫描

解释输出:

如何修改此查询以使其不执行全表扫描?我知道我可能可以使用 UNION ,但除非必要,否则我宁愿不使用 UNION 。

编辑

将查询重写为 UNION 确实有效……这是 UNION 查询

并解释输出

但是再一次,我宁愿不为此做一个 UNION

0 投票
1 回答
235 浏览

mysql - 需要 MySQL 查询优化提示

你能帮我对付一个怪物吗?

你觉得这个有什么问题吗?

想达到秒以下的执行时间,有可能吗?

请询问您可能需要了解数据库结构的任何其他数据。欢迎任何提示和技巧!

执行时间

查询的解释

以下是show status like 'Handler%'执行查询后excatly的结果

数据库结构:https ://gist.github.com/moiseevigor/4988fc8868f92643c9fb

编辑 1

创建索引后

执行时间减少了 2 倍,但仍然达到ORD_CLI_MULTI索引

0 投票
2 回答
506 浏览

mysql - MySQL:在连接列上分组的索引

我正在尝试优化我的索引以执行 JOIN,然后 GROUP BY 连接表中的一列。

我正在通过运行下面的脚本进行测试,使用索引,但我似乎无法弄清楚第三个查询需要哪些索引。

已解决:添加虚拟数据会使 sql 行为不同,我之前尝试过的索引之一工作得很好!

0 投票
1 回答
668 浏览

mysql - 不可能在一个非常简单的带顺序查询中避免“使用文件排序”

我正在尝试创建一个选择查询,但是当我使用解释查询时,mysql 总是额外使用“使用文件排序”。

我尝试使用最简单的查询,但问题并没有消失。我的表“Partidas”的结构是:

该表大约有 1000-5000 行(数据非常少),但始终使用文件排序。我用于测试的查询是:

结果是:

但是如果在查询中我更改了限制,例如限制 0,5;然后结果也会改变

在mysql配置中,buffer和sort的变量分别是:

但我尝试更改这些值(将其增加到 8MB),结果是相同的

谢谢你的帮助

0 投票
3 回答
61 浏览

mysql - MySql 我应该在哪些列上放置索引?

我有这个查询:

我的问题非常具体。这是关于这条线:

当我使用 EXPLAIN 时,这个查询似乎很糟糕。我得到这张表(c = 联系人):38307 行。我应该根据查询将索引放在哪些列上?我尝试了 mobile1 - 但没有任何改进(顺便说一句 - family_id 在联系人表中被索引)。

我附上解释结果的图像: 解释

或者也许有人可以帮助我优化查询......

0 投票
4 回答
132 浏览

mysql - 如何优化这个慢查询?

我有以下运行非常慢的查询(几乎 50000 条记录)

我有 MySQL 客户端版本 5.0.96

当我使用此查询运行 EXPLAIN EXTENDED 调用时,结果如下:

我在以下列有索引 news_id(主键) date_online 已激活 category_id

当我查看 EXPLAIN EXTENDED 结果时,我看到了 USING_WHERE; 使用文件排序。我知道他们两个都很糟糕,但我不知道如何解决这个问题。