gpt4 book ai didi

php - SQL 缓慢加载时间

转载 作者:行者123 更新时间:2023-11-29 01:41:46 26 4
gpt4 key购买 nike

我有下面的代码,当 tblfollowers 表中只有几个 follower_idusername 时,它加载正常。
但是一旦达到数千,加载速度就会非常慢。
有没有更好的方法来写这个?

我在它加入的字段上添加了索引,这似乎没有什么不同。

$scheduler->render_table("events 
LEFT JOIN tblfollowers ON events.id_user = tblfollowers.username
WHERE events.status ='active'
AND((tblfollowers.follower_id)='$test') OR ((events.id_user) ='$test')
GROUP BY events.event_id, events.event_name, events.user_name, events.id_user, events.time, events.details, events.location, events.dresscode
ORDER BY events.timestamp DESC"
,"event_id","start_date, start_date,event_name,details");
$scheduler->render_sql("SELECT event_id, start_date, end_date, event_name, details
FROM events ");

下面是这个查询的解释:

1 SIMPLE events ALL NULL NULL NULL NULL 1593 Using where; Using temporary; Using filesort    1 SIMPLE tblfollowers ref PRIMARY PRIMARY   4 dbhappps.events.id_user 17 Using where; Using index     

Here are the tables

Blockquote

Table Events:

event_id   int(11)  Primary Unique Index    
event_name varchar(400)
user_name varchar(155)
id_user int(11) Primary Unique Index
start_date datetime
end_date datetime
details varchar(700)
location varchar(255)
dresscode varchar(255)
timestamp timestamp on update CURRENT_TIMESTAMP

Blockquote

tblfollowers:

username int(11) primary
follower_id int(11) primary
timestamp timestamp on update CURRENT_TIMESTAMP

如何加快查询速度?

最佳答案

group by 中您只需要两个字段(如果字段 event_id 是主键,您只需要那个字段。< br/>分组考虑更少的字段应该可以使您的查询更快。
您应该只将功能独立的字段放在分组依据中,列出功能相关的字段没有意义并且浪费时间。
幸运的是,MySQL 不需要您这样做。

$scheduler->render_table("events  
LEFT JOIN tblfollowers ON events.id_user = tblfollowers.username
WHERE events.status ='active'
AND '$test' IN (tblfollowers.follower_id, events.id_user) <<-- maybe faster
GROUP BY events.event_id, events.id_user <<-- only include unique key fields
ORDER BY events.timestamp DESC"
,"event_id","start_date, start_date,event_name,details");
$scheduler->render_sql("SELECT event_id, start_date, end_date, event_name, details
FROM events ");

查看此处了解更多信息:http://rpbouman.blogspot.com/2007/05/debunking-group-by-myths.html

为什么会慢?
如果没有 tblfollowers 和事件的表定义,则很难判断。

使用说明
如果您想查看瓶颈在哪里,请在选择前放置一个 EXPLAIN 并将结果粘贴到您的问题中。

$scheduler->render_sql("EXPLAIN SELECT event_id, start_date, end_date, event_name, details 
FROM events ");

跟踪索引没有帮助
使用 explain 的输出来告知您的决定,添加索引会减慢您的插入和更新速度,并增加您的磁盘使用量。

关于php - SQL 缓慢加载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19260948/

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