MySQL 是一个关系型数据库管理系统,广泛用于存储和管理数据。查询随机记录是指从数据库表中随机选择一条或多条记录。这在某些应用场景中非常有用,例如生成随机推荐、随机抽样等。
ORDER BY RAND()
SELECT * FROM table_name ORDER BY RAND() LIMIT 1;
TABLESAMPLE
SELECT * FROM table_name TABLESAMPLE BERNOULLI(1);
SELECT * FROM table_name AS t1
JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM table_name)) AS id) AS t2
ON t1.id = t2.id;
ORDER BY RAND()
在大数据量下性能差原因:ORDER BY RAND()
需要对所有记录进行排序,当数据量较大时,性能会显著下降。
解决方法:
TABLESAMPLE
方法。TABLESAMPLE
不保证每次查询结果相同原因:TABLESAMPLE
是一种概率抽样方法,每次查询的结果可能会有所不同。
解决方法:
ORDER BY RAND()
或 JOIN 和 LIMIT 方法。TABLESAMPLE
。希望这些信息对你有所帮助!如果有更多问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云