问题标签 [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 回答
732 浏览

mysql - mysql使用带有子查询的临时表,但不是group by和order by

我有以下 mysql 查询,运行大约需要 3 分钟。它确实有 2 个子查询,但表的行数很少。在进行解释时,看起来“使用临时”可能是罪魁祸首。显然,数据库似乎正在为所有三个查询创建一个临时表,如下面的“使用临时”名称中所述。

让我感到困惑的是 MySQL 文档说,使用临时性通常是由 group by 和 order by 引起的,我都没有使用。子查询是否会导致隐含的 group by 或 order by?无论 group by 或 order by 是否都需要导致临时表的子查询?有关如何重组此查询以便 MySQL 可以更有效地处理它的任何建议?MySQL设置中的任何其他调整想法?

谢谢!菲尔

0 投票
1 回答
1329 浏览

indexing - 我们怎么知道 monetDB 正在使用索引?

我已经将 1.5 亿条记录加载到 MonetDB 中。插入到单个表中的所有数据。该表没有任何约束(例如UNIQUE,..)。我自己没有创建任何索引。原始源 CSV 文件约为 7.2 GB,导入数据库后约为 8 GB。我跑了一个COUNT(*)with WHERE,它在 12 秒内返回。根据文档:

SQL 标准中的索引语句是公认的,但其实现与竞争产品不同。MonetDB/SQL 将这些语句解释为建议,并且经常随意忽略它,依靠自己的决定来创建和维护索引以实现快速访问。

现在怎么知道 MonetDB 自己创建了索引呢?我用过EXPLAIN但我不明白输出:这是实际的查询:

这是EXPLAIN输出:

任何人都可以帮忙吗?

0 投票
2 回答
4375 浏览

mysql - SQL中Join之前或之后的过滤

我有两个查询来获取相同的数据,它们或多或少具有相同的执行时间。

有人可以指导我其中哪一个更好。我在前者的加入之前和后者的加入之后使用了过滤。MySQL 解释显示,与后者相比,前者的行扫描更多。

0 投票
0 回答
92 浏览

mysql - MySQL 中的这个子查询是否有任何开销?

我想知道当我引入子查询时这个查询是否有开销:

我可以要求用户直接为公司设置 id 并有一个像这样的 WHERE:

我试图通过引入子查询来避免这种情况,就像我在第一个示例中展示的那样,但我担心性能开销。

这是第一个查询的解释(请帮帮我,我还没有得到解释子句):

EXPLAIN 用于子查询查询

以及对硬编码的解释:

在此处输入图像描述

0 投票
1 回答
305 浏览

mysql - 根据 Explain 判断 SQL Query 的长度

我试图根据解释的输出来估计查询需要多长时间。我正在使用 MYSQL 数据库。

我知道您无法确定查询需要多长时间。我只是在寻找一个大概的估计,即 1 小时、8 小时、1 天、2 周等。谢谢!

在此处输入图像描述

0 投票
1 回答
74 浏览

mysql - mysql外键不起作用

我有两张桌子:

之后,我在每个表中插入了几行,但值treaties.id和值items.treaty相同。当我跑

我获得了:

我想如果我之间有外键items.treaty并且treaties.id必须使用这个键并且类型不能是 ALL。怎么了?

请帮我!

谢谢!

0 投票
1 回答
1278 浏览

oracle - 重命名表列对解释/执行计划的影响

我有一个包含 300 多列和数十万条记录的表。我需要重命名现有列之一。

有什么我需要担心的吗?此操作是否会对解释计划等产生影响?

笔记:

  1. 我正在开发 Oracle 11g 上的实时生产数据库。

  2. 此列当前未使用。它没有为任何行填充,我 100% 确定没有任何现有查询引用此列。

0 投票
2 回答
876 浏览

mysql - blob 列上的慢查询分组

我正在使用以下查询从mediumblob列中提取频繁的短值:

我遇到的问题是这个查询花费了太多时间(大约 10 秒,少于 100 万条记录):

该表如下(未显示不相关的列):

类型是 mediumblob,因为大多数值都很大。少于 10% 的内容与我在此特定查询中查找的内容一样短。

我有以下索引:

MySQL这样解释我的查询:

请注意,可以在不更改持续时间的情况下删除有关字节列长度的条件。

我该怎么做才能使这个查询快速?

当然,我宁愿不必添加列。

0 投票
1 回答
280 浏览

mysql - 将 MySQL 解释计划转换为字符串

我需要转换这个

将字符串导入 mysql DBM 以在外部系统中读取此字符串。

我至少需要这部分作为字符串

0 投票
1 回答
92 浏览

mysql - 使用索引优化此查询的最佳方法是什么?

我有一个包含大约 3000 万条记录的表,我需要对其执行查询。根据我的阅读,我认为使用最左边的前缀和我需要选择的所有字段的复合索引是正确的方法,但是当我对查询运行解释时,它甚至没有使用索引。

这是查询:

解释看起来像这样

这些是字段

索引看起来像这样

我不太确定优化它的最佳方法是什么。