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中文网其他相关文章!