问题陈述:
从使用“显而易见”的方法(SELECT * FROM table ORDER BY)高效地大型 MySQL 数据库可能具有挑战性RAND() 限制 n)。这种方法效率低下的原因在于它对每一行使用 RAND() 并进行后续排序,导致资源密集型 O(n lg n) 复杂度。
高效解决方案:
要克服这个障碍,请考虑采用更有效的方法:
SELECT * FROM table WHERE RAND() <= 0.3
此解决方案优于“显而易见”的方法,因为它能够为每行生成 0 到 1 之间的随机数,然后根据概率阈值(本例中为 0.3)评估是否显示该行。
解释:
其他注意事项:
以上是如何从大型 MySQL 数据库中高效提取简单的随机样本?的详细内容。更多信息请关注PHP中文网其他相关文章!