Mysql 调整SQL以缩短服务器重复时间

Mysql 调整SQL以缩短服务器重复时间,mysql,pagespeed,server-response,Mysql,Pagespeed,Server Response,我的SQL脚本扫描约7000条记录,并随机检索其中的100条,还从另一个表中提取相关数据(通过SQL连接)。使用此代码时,我的服务器响应时间非常慢(>7秒) 我想知道是否有人可以推荐我可以做些什么来提高我的响应时间和页面速度。提前感谢。您应该对此查询运行解释计划。我猜所有这些随机操作都会迫使你扫描每一行。不然怎么可能呢 如果看到表扫描,则必须重写查询以消除页面扫描 我是你的朋友 我建议在联接中的所有行上创建一个视图 7000张唱片不是一个很大的数字。我会对所有视图数据进行查询,并在服务器端随机抽

我的SQL脚本扫描约7000条记录,并随机检索其中的100条,还从另一个表中提取相关数据(通过SQL连接)。使用此代码时,我的服务器响应时间非常慢(>7秒)


我想知道是否有人可以推荐我可以做些什么来提高我的响应时间和页面速度。提前感谢。

您应该对此查询运行解释计划。我猜所有这些随机操作都会迫使你扫描每一行。不然怎么可能呢

如果看到表扫描,则必须重写查询以消除页面扫描

我是你的朋友

我建议在联接中的所有行上创建一个视图


7000张唱片不是一个很大的数字。我会对所有视图数据进行查询,并在服务器端随机抽取一个样本

谢谢@duffymo,这是一个很好的开始。但对于如何设置索引来处理随机函数感到困惑。也许在这两个表之间的关系中?我不认为索引是解决这个问题的方法。我会查询中间层的值并在那里随机选择。
  ROUND(AVG(r.rank),0)  AS avrank,
  COUNT(r.rank) AS countrank
  FROM stories s 
  LEFT JOIN ratings 
  AS r 
  ON r.storyidr = s.id 
  GROUP BY s.id 
  ORDER BY RAND() 
  LIMIT 100";