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

mysql - 使用文件排序和临时优化查询

谁能帮我优化这个查询。运行需要一段时间:

su_pref 表有近 900,000 行

这就是我使用 EXPLAIN 时得到的

在此处输入图像描述 我真的很难理解如何使用 EXPLAIN 来优化查询,所以任何帮助将不胜感激。

这是表定义。su_pref 表很大,所以我去掉了一些字段

-

-

-

先感谢您

0 投票
1 回答
494 浏览

mysql - 提高[带有“in 子句”的mysql查询]的性能

我有一个从两个表中检索数据的查询。

table1有一个 int 字段,table1_id它是主键。

table2有两个字段;table1_id, 一个 int 字段(引用table1.table1_id)和field1, 一个位字段。

table2:table1_idfield1上有三个索引table1_id_field1(索引位于名称指示的字段上)。

我有以下查询:

此查询的计划(通过 using 获得EXPLAIN)是这样的:

现在,当我向查询添加额外的 where 子句时,如下所示:

查询不再像以前那样使用高效的索引;这是查询计划:

它现在搜索的行数 (98913) 比以前 (29858) 多,并且不再使用之前在原始查询中使用的索引(它使用field1的是table1_id_field1.

我的问题是:

  1. 带有附加子句的第二个查询没有使用它在第一个查询中使用的索引是否有原因?

  2. 除了使用之外,有什么方法可以让 mysql 选择更有效的索引FORCE INDEX?也许我需要添加另一个索引?

0 投票
1 回答
126 浏览

mysql - MySQL:'EXPLAIN' 显示类似查询的不同解释

我在数据库中有一个表'posts',它在user_id(键:MUL)上有非唯一索引。

对于此表,explain 给出了类型为“ REF ”的预期解释

我有第二个表'followers',其中'user_id'和'follower'是非唯一索引的一部分

但在此表中,类型为“ ALL ”。我希望它是“ REF ”,类似于上表中的“user_id”,这个“user_id”也有非唯一索引。对此有什么解释吗?

0 投票
2 回答
169 浏览

mysql - Mysql查询优化,EXPLAIN和执行缓慢

对一些查询有一些实际问题,尤其是这个。信息如下。

tgmp_games,大约 20k 行

tgmp_reviews - 大约 200k 行

这是查询,需要 3 秒 ish

解释

我只是想获取观看次数最多的 15 款游戏,然后为每款游戏获取一条评论(这并不重要,我想最高评分是理想的,r_score)。

有人可以帮我弄清楚为什么这效率如此之低吗?

0 投票
0 回答
800 浏览

mysql - 显示 mysql 查询的实际执行计划

可能的重复:
PostgreSQL 的 EXPLAIN ANALYZE 的 MySQL 等价物是什么

我想知道 mysql 中是否有一种方法可以显示已执行查询的执行计划的实际步骤。

例如EXPLAIN SELECT ...显示 mysql 会做什么,但有没有办法实际执行查询并显示执行中使用的执行计划?

我看到 postgreSQL 通过EXPLAIN ANALYZE SELECT...

MySQL中是否有任何等效功能?

0 投票
2 回答
11372 浏览

mysql - Mysql Order by 子句使用“FileSort”

我有一个像这样的表结构

当我触发查询时

它将结果输出为

为什么找不到我定义为主键的索引?

0 投票
1 回答
159 浏览

mysql - 在mysql中加入表没有正确使用索引?

我有四个表,我正在尝试加入并将结果输出到一个新表。我的代码如下所示:

所有表都有多个索引,对于 table a(dte, permno)标识一条唯一记录,对于 table bdteid 是唯一记录,对于 table c(yr, permno)id 是唯一记录,对于 table d(dte, permno)id 是唯一记录。select查询部分的解释是:

为什么mysql要读取这么多行来处理这个东西?如果我读得正确,它必须读取(264129*16*12336)应该需要一个月的行。

有人可以解释一下这里发生了什么吗?

0 投票
2 回答
1339 浏览

performance - 分析ORACLE EXPLAIN PLAN

浏览器在生成 jasper 报告 [PDF 格式] 时被挂起,该报告运行一个查询,其解释计划如下。

请帮助分析查询,此查询是否花费了太多时间?在生成此报告时,我们还注意到线程卡住了。

报表查询的说明计划

0 投票
2 回答
9503 浏览

mysql - Mysql - “选择喜欢”不使用索引

我一直在使用 MySQL(5.5.24,WinXP)上的索引,但我找不到在使用 a 时服务器不使用一个索引的原因LIKE

这个例子是这样的:

我创建了一个测试表:

然后,我添加了一个索引到startDate. (请不要问为什么该列是文本而不是日期时间。这只是一个简单的测试):

之后,我添加了近 200,000 行,其中startDate有 3 个可能的值。(每一个出现三分之一......接近70,000次)

所以,如果我运行这样的EXPLAIN命令:

答案如下:

因此,使用了密钥,并且行数接近 200,000/3,所以一切正常。

问题是,如果我将查询更改为:(只需将 '=' 更改为 'LIKE'):

在这种情况下,答案是:

因此,现在没有使用索引(键为空,并且行接近完整表......正如 type=all 所暗示的那样)。

MySQL 文档说 LIKE 确实使用了索引。

那么,我在这里没有看到什么?哪里有问题?

谢谢你的帮助。

0 投票
0 回答
246 浏览

mysql - 在 WHERE 子句中使用 OR 的 MySQL 全文不使用索引

第一次发帖……我通常可以通过搜索找到答案,但这似乎是一个晦涩难懂的情况;

言归正传。我使用专为从父表搜索而设计的表创建了几个搜索。我遇到了这样一种情况,即我编写的​​查询在 WHERE 子句中使用 OR 时不会使用 PRIMARY KEY 索引,但如果换入 AND 则将按预期运行。这是表。

查询;请注意,animation_title 和 tag_text 在查询中的使用方式不同。

和解释....

为什么??我已经多次重写了这个查询,我在网上阅读的所有内容似乎都指向这个查询被正确编写。有任何想法吗?提前致谢!