ORDER BY RAND() 並非唯一方案?
雖然ORDER BY RAND()
是MySQL隨機化結果的常用方法,但當需要多個隨機結果時,它效率低。因為這需要對整個結果集進行排序,對於大型表而言效率極低。
更有效率的替代方案
為了最佳化此類查詢,建議使用更有效率的方法:
<code class="language-sql">SELECT g.* FROM table g JOIN (SELECT id FROM table WHERE RAND() < p><strong>工作原理</strong></p><p>此优化后的查询使用了以下技术:</p></code>
最佳化方法的優點
這種最佳化方法有以下優點:
ORDER BY RAND()
快得多,尤其是大型結果集。 局限性
要注意的是,此方法可能並不適用於所有情況。涉及多個連接或WHERE
子句的複雜查詢可能需要更複雜的子查詢和最佳化技術。
以上是ORDER BY RAND() 是 MySQL 中取得多個隨機結果的最佳方法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!