gpt4 book ai didi

sql - 优化我的mysql语句! - 兰德()太慢

转载 作者:可可西里 更新时间:2023-11-01 06:28:29 26 4
gpt4 key购买 nike

所以我有一个表有超过 80,000 条记录,这个称为系统。我还有另一个名为 follows 的表。

我需要我的语句从系统表中随机选择记录,其中该 ID 尚未列在当前用户 ID 下的下表中。

这就是我所拥有的:

    SELECT system.id, 
system.username,
system.password,
system.followed,
system.isvalid,
follows.userid,
follows.systemid
FROM system
LEFT JOIN follows ON system.id = follows.systemid
AND follows.userid = 2
WHERE system.followed = 0
AND system.isvalid = 1
AND follows.systemid IS NULL
ORDER BY RAND()
LIMIT 200

现在它可以完美地工作,只是它需要大约一分钟的时间才能开始使用它选择的记录处理手头的工作。到这个时候,脚本通常会超时,什么也不会发生。

有人可以告诉我如何重做这个,所以完成了同样的想法,但它没有使用 order by rand?这似乎让事情变慢了一大堆。

谢谢!

最佳答案

我不确定是否有一个简单的解决方案来替换您的查询,这里有一篇关于更正此类问题的文章。

http://www.titov.net/2005/09/21/do-not-use-order-by-rand-or-how-to-get-random-rows-from-table/

关于sql - 优化我的mysql语句! - 兰德()太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1594483/

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