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.bbsmax.com/A/MyJxN2q1dn/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)