IT袋

当前位置:主页 > 对比评测 >

MySQL随机获取10条数据-多种方式对比

MySQL随机获取10条数据-多种方式对比(2)

时间:2024-01-27 13:18:34 来源:IT袋 作者:马勇
导读:MySQL随机获取10条数据-多种方式对比,方式一 最简单,但是效率最低 执行时间:3.098s SELECT * FROM users ORDER BY RAND() LIMIT 10 方式二 查询效率较高,但会产生连续的数据 执行时间:0.310s SELECT t1.*

MySQL随机获取10条数据-多种方式对比

方式一

最简单,但是效率最低

执行时间:3.098s

SELECT * FROM users ORDER BY RAND() LIMIT 10

方式二

查询效率较高,但会产生连续的数据

执行时间:0.310s

SELECT
 t1.* 
FROM
 users AS t1
 JOIN ( SELECT ROUND( RAND() * ( SELECT MAX( id ) FROM users )) AS id ) AS t2 
WHERE
 t1.id >= t2.id 
ORDER BY
 t1.id ASC 
 LIMIT 10;

方式三

查询效率次之,不会产生连续数据

执行时间:0.296s

SELECT
 * 
FROM
 users
WHERE
 id >= ( SELECT floor( RAND() * ( SELECT MAX( id ) FROM users ) ) ) 
ORDER BY
 id 
 LIMIT 10;

总结

方式一与方式二的查询效率,相差了进10倍;

方式二与方式三的查询效率基本没有差别;

如何在生产环境中有随机获取数据的场景,尽量使用方式二和方式三;

以上就是MySQL随机获取10条数据-多种方式对比的具体介绍,供网友们借鉴参考。

相关阅读