从Mysql数据库表(大型数据集)中检索50条随机记录 [英] Retrieve 50 random records from a Mysql database table (large data set)
本文介绍了从Mysql数据库表(大型数据集)中检索50条随机记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要从表中检索一些随机记录.该表包含约 100000 条记录.
I need to retrieve a number of random records from a table. The table contains about 100000 records.
记录不能连续,而且性能很重要.
The records must not be consecutive and performance is important.
我尝试了"order by rand()
",但性能不佳(〜3 秒)
I tried "order by rand()
" but the performance is bad ( ~3 seconds)
推荐答案
SET @o = (SELECT FLOOR(RAND() * COUNT(*)) FROM your_table);
PREPARE STMT FROM 'SELECT * FROM your_table LIMIT ?, 1';
EXECUTE STMT USING @o;
这篇关于从Mysql数据库表(大型数据集)中检索50条随机记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文