如何高效地对大型 MySQL 表数据进行随机排序?
随机打乱 mysql 表的数据
对于大型数据集,对表中的数据进行按插入顺序排序非常低效。如果您希望重新排列表中的数据以便随机排序,可以使用以下方法:
方法 1:子查询
select * from test1 as u inner join (select id from test1 where totalscore between 5 and 100 order by rand() limit 100) as t on t.id=u.id where 1
方法 2:常规写法
SELECT * FROM student WHERE totalScore BETWEEN 5 AND 100 ORDER BY RAND() LIMIT 100;
方法 1 使用子查询来从表中选择一个随机排序的 id 列表,然后将其与主表进行联接。这种方法性能更好。
方法 2 是 mysql 的常规写法。虽然它更容易理解,但当数据集较大时性能会下降。
请注意,rand() 函数会生成一个伪随机数,因此结果不会真正随机。如果需要真正的随机性,可以使用诸如 uuid 之类的值。
以上就是如何高效地对大型 MySQL 表数据进行随机排序?的详细内容,更多请关注其它相关文章!