从Mysql数据库表(大型数据集)中检索50条随机记录 [英] Retrieve 50 random records from a Mysql database table (large data set)

查看:263
本文介绍了从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆