小编Bra*_*don的帖子

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

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

我需要我的语句从系统表中随机选择记录,其中该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
Run Code Online (Sandbox Code Playgroud)

现在它完美无瑕,除了它需要大约一分钟才能开始处理他们所选择的记录.到这个时候,脚本通常会超时并且没有任何反应.

有人可以告诉我如何重做这个,所以同样的想法已经完成,但它没有使用兰德的命令?这似乎减慢了一大堆.

谢谢!

mysql sql random

9
推荐指数
2
解决办法
5836
查看次数

标签 统计

mysql ×1

random ×1

sql ×1