问题标签 [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.
mysql - mysql使用带有子查询的临时表,但不是group by和order by
我有以下 mysql 查询,运行大约需要 3 分钟。它确实有 2 个子查询,但表的行数很少。在进行解释时,看起来“使用临时”可能是罪魁祸首。显然,数据库似乎正在为所有三个查询创建一个临时表,如下面的“使用临时”名称中所述。
让我感到困惑的是 MySQL 文档说,使用临时性通常是由 group by 和 order by 引起的,我都没有使用。子查询是否会导致隐含的 group by 或 order by?无论 group by 或 order by 是否都需要导致临时表的子查询?有关如何重组此查询以便 MySQL 可以更有效地处理它的任何建议?MySQL设置中的任何其他调整想法?
谢谢!菲尔
indexing - 我们怎么知道 monetDB 正在使用索引?
我已经将 1.5 亿条记录加载到 MonetDB 中。插入到单个表中的所有数据。该表没有任何约束(例如UNIQUE
,..)。我自己没有创建任何索引。原始源 CSV 文件约为 7.2 GB,导入数据库后约为 8 GB。我跑了一个COUNT(*)
with WHERE
,它在 12 秒内返回。根据文档:
SQL 标准中的索引语句是公认的,但其实现与竞争产品不同。MonetDB/SQL 将这些语句解释为建议,并且经常随意忽略它,依靠自己的决定来创建和维护索引以实现快速访问。
现在怎么知道 MonetDB 自己创建了索引呢?我用过EXPLAIN
但我不明白输出:这是实际的查询:
这是EXPLAIN
输出:
任何人都可以帮忙吗?
mysql - SQL中Join之前或之后的过滤
我有两个查询来获取相同的数据,它们或多或少具有相同的执行时间。
有人可以指导我其中哪一个更好。我在前者的加入之前和后者的加入之后使用了过滤。MySQL 解释显示,与后者相比,前者的行扫描更多。
mysql - MySQL 中的这个子查询是否有任何开销?
我想知道当我引入子查询时这个查询是否有开销:
我可以要求用户直接为公司设置 id 并有一个像这样的 WHERE:
我试图通过引入子查询来避免这种情况,就像我在第一个示例中展示的那样,但我担心性能开销。
这是第一个查询的解释(请帮帮我,我还没有得到解释子句):
以及对硬编码的解释:
mysql - 根据 Explain 判断 SQL Query 的长度
我试图根据解释的输出来估计查询需要多长时间。我正在使用 MYSQL 数据库。
我知道您无法确定查询需要多长时间。我只是在寻找一个大概的估计,即 1 小时、8 小时、1 天、2 周等。谢谢!
mysql - mysql外键不起作用
我有两张桌子:
和
之后,我在每个表中插入了几行,但值treaties.id
和值items.treaty
相同。当我跑
我获得了:
我想如果我之间有外键items.treaty
并且treaties.id
必须使用这个键并且类型不能是 ALL。怎么了?
请帮我!
谢谢!
oracle - 重命名表列对解释/执行计划的影响
我有一个包含 300 多列和数十万条记录的表。我需要重命名现有列之一。
有什么我需要担心的吗?此操作是否会对解释计划等产生影响?
笔记:
我正在开发 Oracle 11g 上的实时生产数据库。
此列当前未使用。它没有为任何行填充,我 100% 确定没有任何现有查询引用此列。
mysql - blob 列上的慢查询分组
我正在使用以下查询从mediumblob
列中提取频繁的短值:
我遇到的问题是这个查询花费了太多时间(大约 10 秒,少于 100 万条记录):
该表如下(未显示不相关的列):
类型是 mediumblob,因为大多数值都很大。少于 10% 的内容与我在此特定查询中查找的内容一样短。
我有以下索引:
MySQL这样解释我的查询:
请注意,可以在不更改持续时间的情况下删除有关字节列长度的条件。
我该怎么做才能使这个查询快速?
当然,我宁愿不必添加列。
mysql - 将 MySQL 解释计划转换为字符串
我需要转换这个
将字符串导入 mysql DBM 以在外部系统中读取此字符串。
我至少需要这部分作为字符串
mysql - 使用索引优化此查询的最佳方法是什么?
我有一个包含大约 3000 万条记录的表,我需要对其执行查询。根据我的阅读,我认为使用最左边的前缀和我需要选择的所有字段的复合索引是正确的方法,但是当我对查询运行解释时,它甚至没有使用索引。
这是查询:
解释看起来像这样
这些是字段
索引看起来像这样
我不太确定优化它的最佳方法是什么。