首页 > 数据库技术 > 详细

Mysql 随机查询10条数据效率最快的查询方法

时间:2020-07-16 22:45:43      阅读:360      评论:0      收藏:0      [点我收藏+]

1)使用join 和 rand() 耗时 0.009

技术分享图片
SELECT
    *
FROM
    `t_topic` AS t1
JOIN (
    SELECT
        ROUND(
            RAND() * (
                (SELECT MAX(id) FROM `t_topic`) - (SELECT MIN(id) FROM `t_topic`)
            ) + (SELECT MIN(id) FROM `t_topic`)
        ) AS id
) AS t2
WHERE
    t1.id >= t2.id
ORDER BY
    t1.id
LIMIT 10;
技术分享图片

 

2) 下面这条比上面那个还要慢几秒

SELECT * FROM `t_topic` 
WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `t_topic`)-(SELECT MIN(id) FROM `t_topic`)) + (SELECT MIN(id) FROM `t_topic`)))  
ORDER BY id LIMIT 10;

3)或者使用下面这个也可以测试也是 耗时0.0012

技术分享图片
SELECT
    *
FROM
    `t_topic`
WHERE
    id >= (
        SELECT
            floor(
                RAND() * (SELECT MAX(id) FROM `t_topic`)
            )
    )
ORDER BY
    id
LIMIT 10;

转自:https://www.cnblogs.com/wanglijun/p/8926371.html

Mysql 随机查询10条数据效率最快的查询方法

原文:https://www.cnblogs.com/P-Z-1/p/13324672.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!