最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
sql order by rand随机数据优化与性能对比
时间:2022-11-14 23:37:18 编辑:袖梨 来源:一聚教程网
测试环境
apache2.2/php5.2/mysql5
测试数据
15W+数据,数据表大小600MB
测试语句
最初使用的是 order by rand()了,发现几万条数据居然要10秒之长的时间很是悲剧吧
| 代码如下 | 复制代码 |
|
SELECT * FROM `表名` order by rand() |
|
显示行 0 - 29 (154,825 总计, 查询花费 10.1125 秒)
后来网上搜索到如下方法,同样数据感觉有很大的提高了(这里测试的是15W数据)
| 代码如下 | 复制代码 |
|
SELECT * FROM 表名 WHERE id >= ((SELECT MAX(id) FROM 表名)-(SELECT MIN(id) FROM 表名)) * RAND() + (SELECT MIN(id) FROM 表名) LIMIT 10 |
|
显示行 0 - 29 (154,825 总计, 查询花费 0.0221 秒)
感觉不错了,有朋友说用join可能更好,于时找了一段代码测试一下查询花费 0.0025 秒,又提供了几倍呀。
| 代码如下 | 复制代码 |
|
SELECT * |
|
显示行 0 - 9 (10 总计, 查询花费 0.0025 秒)
最后还可以优化一下
| 代码如下 | 复制代码 |
|
SELECT s_url,title |
|
显示行 0 - 9 (10 总计, 查询花费 0.0008 秒)
总结一下,我们如果用同样的方法在字段选择时越少越好,这不从0.0025直接降到0.0008秒了哦。
相关文章
- 亲亲漫画在线看官网-全网正版热门漫画每日高清更新 02-11
- 番茄小说电脑版在线入口-番茄小说电脑版官网2026 02-11
- 豆包官方网页版入口-豆包AI官网网页版入口 02-11
- 漫蛙免费漫画网页查找指南-漫蛙免费漫画入口与技巧全收录 02-11
- 罗马仕充电宝批次查询官网入口-罗马仕充电宝批次查询方法详解 02-11
- 羞羞漫画在线看入口分享:最新高清韩漫日漫实时更新 02-11