最新下载
热门教程
- 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秒了哦。
相关文章
- 顶级专家发布重大看涨以太坊(ETH)预测 07-08
- 碳碳岛配额怎么安排 配额管理技巧详解 07-08
- 洛克王国世界内测资格怎么申请 内测资格获取方法 07-08
- 王者荣耀世界什么时候公测 最新公测时间介绍 07-08
- 金铲铲之战s14战略超频猫阵容搭配指南 07-08
- 网页标题是一成不变的吗 如果修改了会影响到网站排名吗 07-08