gpt4 book ai didi

mysql - 两个带计数的 select 语句 - 非常慢

转载 作者:行者123 更新时间:2023-11-29 00:45:03 25 4
gpt4 key购买 nike

我正在尝试获取 session 日志表中的所有条目,其中一个 session 有超过 10 个条目(即 session_id 的计数大于 10)。我现在有两个选择语句:

select * from log_metrics where session_id in 
( select session_id from log_metrics
group by session_id having count(*) > 10
)

log_metrics 表相当大,大约。 7,700,000 行。内部选择需要 12.88 秒并找到 178,000 个 session ID。整个查询并没有像这样写完运行,但是当将 limit 10 添加到外部选择的末尾时,它在 18 秒内完成,limit 100 在 3 分钟内完成35 秒。我尝试将限制添加到内部选择但出现以下错误:

ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

有没有办法重写这个查询来加快速度?我只需要从返回的 log_metrics 中获取大约 5,000 行,而不是 session ID 的总数 178,000。

感谢您提供的任何帮助。我是 mysql 的新手,所以请原谅任何礼仪失误。

最佳答案

select * 
from log_metrics a
inner join (select session_id from log_metrics group by session_id having count(*) > 10) b
on a.session_id = b.session_id

这是一个 SQL fiddle :http://sqlfiddle.com/#!2/7bed6/3

关于mysql - 两个带计数的 select 语句 - 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853986/

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