gpt4 book ai didi

mysql - 为什么这个 MySQL 查询性能很差(DEPENDENT_SUBQUERY)

转载 作者:行者123 更新时间:2023-11-29 21:05:00 26 4
gpt4 key购买 nike

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com