MySQL 数据库中的高效简单随机采样
从大型数据库中采样数据通常是统计分析或子采样以进行进一步处理所必需的。一个常见的问题是从包含数百万行的 MySQL 数据库中选择一个简单的随机样本。
SELECT * FROM table ORDER BY RAND() LIMIT 10000 的简单方法会产生显着的性能开销,因为需要对整个表进行排序。随着表大小的增加,这种方法变得非常慢。
高效的解决方案
更有效的方法是利用 MySQL 生成随机数的能力。查询 SELECT * FROM table WHERE rand()
这种方法有几个优点:
通过对表的较大子集进行采样 (例如,所需样本大小的 2-5 倍),在插入或更新时对随机列进行索引,然后对该索引进行过滤,可以进一步优化采样过程。此方法提供了索引扫描性能的优势,并允许更高精度的样本大小。
总而言之,SELECT * FROM table WHERE rand()
以上是如何在MySQL中高效地进行简单的随机采样?的详细内容。更多信息请关注PHP中文网其他相关文章!