我的问题是基于 SO MySQL select 10 random rows from 600K rows fast。我们都知道
SELECT column FROM table
ORDER BY RAND()
LIMIT 10
对于大表来说太慢了,另一种技巧和方法用于提取一些行。
但是如果我使用 WHERE:
SELECT column FROM table
WHERE colA=123
ORDER BY RAND()
LIMIT 10
如果WHERE
实际上至少排除99.99%
了 600k 中的错误行,那么性能如何?换句话说,在这个查询中首先起作用的是什么 -WHERE
或ORDER BY RAND()
?
如果WHERE
首先工作,这是否意味着ORDER BY RAND ()
只排序 60 行(而不是 600k)并且工作速度很快?