问题标签 [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查询
解释查询返回这个
问题是,由于索引,行数不应该远小于表中的行数吗?
user_id 是主索引,所以我尝试在 points_for_user 上创建一个索引,并且仍然查看每一行。user_id AND points_for_user 上的索引仍然搜索每一行。
我错过了什么?
谢谢!
mysql - mysql for ref 中的两个 const 不应该是 const 类型吗?
我有以下 MySQL 查询
以下是返回
为什么类型是 ref 而不是 const?
user_item_id 是 user_id 和 item_id 的复合索引。
mysql - MySQL中多列索引的效率
如果我有一个带有 3 列索引的 MyISAM 表,例如
问题是,以下查询能否充分利用索引:
换句话说,考虑到索引是一个b-tree,MySQL可以跳过中间的列并且仍然对第一列和最后一列进行快速搜索吗?
EXPLAIN 似乎确实表明将使用该索引,但是,Extra 说:Using where; Using index
我不知道这到底意味着什么。
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)组成的主索引。此外,这是一个只写的主服务器,其他三个从服务器处理所有读取。
mysql - 如何确定什么更有效:DISTINCT 还是 WHERE EXISTS?
例如,我有 3 个表:user
、group
和permission
,以及它们之间的两个 many2many 关系:user_groups
和group_permissions
。
我需要选择给定用户的所有权限,不重复。每次遇到类似的问题,我都无法确定哪个版本的查询更好:
我有足够的经验根据解释得出结论。第一个查询有子查询,但我的经验表明第一个查询更快。可能是因为结果中过滤了大量权限。
在这个情况下,你会怎么做?为什么?谢谢!
mysql - 没有 possible_keys 可用,但 where 子句中存在键
解释语句:explain select id from words_data where pid=232632;
但possible_keys
列中没有列出任何键。
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 ?
mysql - MYSQL 查询解释选择
某些表的 EXPLAIN SELECT 结果具有:
如果想澄清两个表都使用“键”列的索引,但是我看不到表 1 的“使用索引”???我应该关心这个吗?
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 行解释计划输出以及实际查询执行。
所以我想知道查询中的解释计划和分组子句是否存在问题?
mysql - MySQL EXPLAIN 自动解析
我需要实现对 MySQL EXPLAIN 命令输出的自动分析,它将查询标记为“坏”(例如,如果不使用索引)、“中”(可以优化)和“好”。
是否有任何现有的解决方案或任何算法来实现它?