gpt4 book ai didi

php - 查询执行量太大

转载 作者:行者123 更新时间:2023-11-29 23:19:46 25 4
gpt4 key购买 nike

我有一个包含 187840 行的数据库。当我执行此查询时,我收到此消息查询执行被中断

查询太重

SELECT days.day,count(U.sig_name) as number 
FROM days
LEFT JOIN linked U ON
days.day = date(timestamp)
AND
U.sig_name REGEXP "^Tester"
GROUP BY days.day;

解决方案是什么?

最佳答案

这是您的查询:

select days.day, count(U.sig_name) as number
from days left join
linked U
on days.day = date(timestamp) AND U.sig_name REGEXP "^Tester"
group by days.day;

由于 timestamp 周围的函数调用,您遇到了问题。您可能会发现这个版本更好:

select days.day,
(select count(*)
from linked u
where u.timestamp >= days.day an du.timestamp < date_add(days.day, interval 1 day) and
u.sig_name not like '%Tester%'
)
from days;

为了提高性能,您需要在 linked(timestamp, sig_name) 上建立复合索引。这样就消除了外部聚合(聚合使用索引代替),并允许使用索引进行匹配。

关于php - 查询执行量太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27426646/

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