私の質問は 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
実際に600k の中からWHERE
少なくとも間違った行を除外した場合、パフォーマンスはどうでしょうか? 99.99%
言い換えれば、このクエリで最初に機能するのは何ですか?WHERE
それともORDER BY RAND()
?
WHERE
最初に動作する場合、これはORDER BY RAND ()
60 行 (600k ではなく) のみをソートし、高速に動作することを意味しますか?