作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
explain select id, nome from bea_clientes where id in (
select group_concat(distinct(bea_clientes_id)) as list
from bea_agenda
where bea_clientes_id>0
and bea_agente_id in(300006,300007,300008,300009,300010,300011,300012,300013,300014,300018,300019,300020,300021,300022)
)
当我尝试执行上述操作(没有解释)时,MySQL 只是变得很忙,使用 DEPENDENT SUBQUERY,这使得速度慢得要命。问题是为什么优化器会为 client 中的每个 id 计算子查询。我什至将 IN 参数放入 group_concat 中,相信将结果作为普通“字符串”以避免扫描是相同的。
我认为这对于 5.5+ 的 MySQL 服务器来说不会是问题?MariaDb 中的测试也执行相同的操作。
这是一个已知的错误吗?我知道我可以将其重写为联接,但这仍然很糟糕。
Generated by: phpMyAdmin 4.4.14 / MySQL 5.6.26
Comando SQL: explain select id, nome from bea_clientes where id in ( select group_concat(distinct(bea_clientes_id)) as list from bea_agenda where bea_clientes_id>0 and bea_agente_id in(300006,300007,300008,300009,300010,300011,300012,300013,300014,300018,300019,300020,300021,300022) );
Lines: 2
Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
|----|--------------------|--------------|-------|-------------------------------|---------------|---------|------|-------|------------------------------------|
| 1 | PRIMARY | bea_clientes | ALL | NULL | NULL | NULL | NULL | 30432 | Using where |
| 2 | DEPENDENT SUBQUERY | bea_agenda | range | bea_clientes_id,bea_agente_id | bea_agente_id | 5 | NULL | 2352 | Using index condition; Using where |
最佳答案
如果没有数据,显然很难测试,但如下所示。子查询在 mysql 中表现不佳(尽管它是我最喜欢的引擎)。我还建议对相关列建立索引,这将提高两个查询的性能。为了清楚起见,我还可以建议扩展查询。
select t1.id,t1.nome from (
(select group_concat(distinct(bea_clientes_id)) as list from bea_agenda where bea_clientes_id>0 and bea_agente_id in (300006,300007,300008,300009,300010,300011,300012,300013,300014,300018,300019,300020,300021,300022)
) as t1
join
(select id, nome from bea_clientes) as t2
on t1.list=t2.id
)
关于mysql - 为什么这个 MySQL 查询性能很差(DEPENDENT_SUBQUERY),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36896094/
我对如何在 Python 3.4 中使用 asyncio 模块感到困惑。我有一个用于搜索引擎的 searching API,并希望每个搜索请求并行或异步运行,这样我就不必等待一个搜索完成再开始另一个搜
这是我遇到这个特殊问题的第二个项目。今天早些时候,我通过 Storyboard设置了一个表格 View 和原型(prototype)单元格。我添加了带有标记号的 subview ,这样我就可以从 ce
我是一名优秀的程序员,十分优秀!