如何从 MySQL 数据库高效检索简单随机样本
在 SQL 中,从大型数据集中获取随机样本可能具有挑战性。传统方法涉及按随机值对行进行排序并选择所需的行数。然而,这种方法效率低下,因为它需要昂贵的排序和 RAND() 评估。
特别对于 MySQL,另一种方法可显着提高性能。通过利用 MySQL 的 RAND() 函数生成均匀分布的随机数的独特功能,我们可以完全避免排序。
公式如下:
select * from table where rand() <= ( desired sample size / total rows )
此查询生成一个每行的随机数,取值范围为0到1。通过将这个随机数与基于所需样本大小和总行数的阈值进行比较,我们可以确定是否显示row.
这种方法可以实现高效的 O(n) 性能,而无需排序的开销。数据库可以快速选择所需的样本大小,而不会产生每行 RAND() 计算的大量计算时间或排序的复杂性。
通过利用 MySQL 的 rand() 函数的强大功能,我们获得了以下能力以最佳速度和效率检索简单的随机样本。
以上是如何高效地从MySQL数据库中获取简单的随机样本?的详细内容。更多信息请关注PHP中文网其他相关文章!