mysql中随机查询取值效率优化
在mysql中随机查询数据是一个比较常用的功能,但是这个随机查询功能如果没使用好你的数据库就会卡死,特别到了几十万,上百万数据时更要注意了,下面我来介绍mysql中随机查询取值效率优化.
mysql使用rand()进行随机查询
代码如下 | 复制代码 |
1 order by rand() limit x |
随机mysql查询效率极其低下,今晚本人就遇到几个wordpress插件的作者,随机取值,竟然都是直接
代码如下 | 复制代码 |
1 order by rand() |
这也太坑爹了,数据一多,譬如你有个5万~10万,加上每天几千IP,那效率就跟蜗牛似的。不信你试试。这是严重不
负责任的随机查询。
后来百度找了一个方法
代码如下 | 复制代码 |
SELECT * 或者 SELECT * |
但是还是没有效果了,再看下面
代码如下 | 复制代码 |
SELECT * |
这样就快了很多哦,但是这个方法,会导致大部分的取值都在1/2前范围内,需要重新改造下:
代码如下 | 复制代码 |
SELECT * `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2 |
上一篇: 这个页面总是出现这个问题怎么回事?