在MySQL中从表中选择随机行的最佳方法是什么?
时间:2020-03-06 14:48:43 来源:igfitidea点击:
Possible Duplicate: quick selection of a random row from a large table in mysql
我已经看到使用这样的查询提取随机行,这对于大型数据集而言效率很低。
SELECT id FROM table ORDER BY RANDOM() LIMIT 1
我还看到了其他各种不适用于MySQL的RDBMS特定解决方案。
我能想到的最好的办法就是使用两个查询并执行类似的操作。
- 获取表中的行数。 MyISAM表存储行数,因此非常快。
- 计算介于0和行数-1之间的随机数。
- 选择按主键排序的行,其限制为RAND numnum 1
这是SQL:
SELECT COUNT(*) FROM table; SELECT id FROM table LIMIT randnum, 1;
有谁有更好的主意吗?