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

mysql - 索引查询,但仍在搜索每一行

我有以下mysql查询

解释查询返回这个

问题是,由于索引,行数不应该远小于表中的行数吗?

user_id 是主索引,所以我尝试在 points_for_user 上创建一个索引,并且仍然查看每一行。user_id AND points_for_user 上的索引仍然搜索每一行。

我错过了什么?

谢谢!


0 投票
1 回答
2087 浏览

mysql - mysql for ref 中的两个 const 不应该是 const 类型吗?

我有以下 MySQL 查询

以下是返回

为什么类型是 ref 而不是 const?

user_item_id 是 user_id 和 item_id 的复合索引。

0 投票
2 回答
176 浏览

mysql - MySQL中多列索引的效率

如果我有一个带有 3 列索引的 MyISAM 表,例如

问题是,以下查询能否充分利用索引:

换句话说,考虑到索引是一个b-tree,MySQL可以跳过中间的列并且仍然对第一列和最后一列进行快速搜索吗?

EXPLAIN 似乎确实表明将使用该索引,但是,Extra 说:Using where; Using index我不知道这到底意味着什么。

0 投票
1 回答
1083 浏览

mysql - 即使正在使用主索引和良好的 EXPLAIN 计划,MySQL 的查询也很慢

我有一个 130 万行的高流量表,它看到了大量以下类型的慢查询:

然而,这个查询的解释计划表明了一个最佳计划(我们正在使用主键):

这是慢查询日志:

大约 30% 的查询耗时 >1s,大约 10% 的查询耗时 >10s (!)

什么可能导致此查询运行缓慢?据我所知,计划很完美,只扫描了一行,没有花时间获取锁。那么,会发生什么?

更新:忘记包含服务器规格,这是在 64G Quad Xeon X5650 2.66GHz(24 核)、Mysql 5.1.52-rel11.6-log Percona 服务器 11.6、12 磁盘 PERC H700 RAID 阵列上。该服务器已经运行了很长时间(正常运行时间表示 565 天)。

更新2:这个表只有一个索引,它是一个由元组(app_id,user_id,slice_id,mode_id)组成的主索引。此外,这是一个只写的主服务器,其他三个从服务器处理所有读取。

0 投票
1 回答
9198 浏览

mysql - 如何确定什么更有效:DISTINCT 还是 WHERE EXISTS?

例如,我有 3 个表:usergrouppermission,以及它们之间的两个 many2many 关系:user_groupsgroup_permissions

我需要选择给定用户的所有权限,不重复。每次遇到类似的问题,我都无法确定哪个版本的查询更好:

我有足够的经验根据解释得出结论。第一个查询有子查询,但我的经验表明第一个查询更快。可能是因为结果中过滤了大量权限。

在这个情况下,你会怎么做?为什么?谢谢!

0 投票
1 回答
108 浏览

mysql - 没有 possible_keys 可用,但 where 子句中存在键

解释语句:explain select id from words_data where pid=232632;possible_keys列中没有列出任何键。

0 投票
1 回答
134 浏览

mysql - Performace Lag in Mysql query

This mysql query takes 5 minutes 20 seconds to execute

The explain give the following result

Number of rows in a table is 50,000.

How can I optimize this ?

0 投票
2 回答
245 浏览

mysql - MYSQL 查询解释选择

某些表的 EXPLAIN SELECT 结果具有:

如果想澄清两个表都使用“键”列的索引,但是我看不到表 1 的“使用索引”???我应该关心这个吗?

0 投票
1 回答
226 浏览

database - 在 postgresql 8.4 中用 group by 子句解释计划问题

下面给出了详细的解释,这与用分组问题的解释计划有关。

表:web_categoryutfv1_24hr_ts_201209
列:“5mintime”,类别,命中,字节,appid
行:871
索引:“web_categoryutfv1_24hr_ts_201209_idx”btree(“5mintime”)

我正在运行以下查询:

我从 t_totalcnt 变量中得到总行返回 55。现在我分析web_categoryutfv1_24hr_ts_201209了表并再次使用说明运行相同的查询

我得到以下执行计划:

现在我得到了解释计划输出 HashAggregate (cost=30.39..30.75 rows=24 width=31) 它说 rows=24 而实际上总行返回应该是 55。当我从查询中删除 group by 子句时,我得到了 373 行解释计划输出以及实际查询执行。

所以我想知道查询中的解释计划和分组子句是否存在问题?

0 投票
1 回答
322 浏览

mysql - MySQL EXPLAIN 自动解析

我需要实现对 MySQL EXPLAIN 命令输出的自动分析,它将查询标记为“坏”(例如,如果不使用索引)、“中”(可以优化)和“好”。

是否有任何现有的解决方案或任何算法来实现它?