mysql随机取数据的几种高效率方法

Seven 绯闻SEO 绯闻SEO,一个专注中小企业网站优化的SEO爱好者

我用最简单的也是常用的方法来看看,下面再介绍高效的mysql随机数据的方法,有需要的朋友可以参考一下.

1]普通方法,效率太低,代码如下:

SELECT * FROM table ORDER BY rand() LIMIT 10;

[2]JOIN的方法,代码如下:

  1. SELECT*
  2. FROM`table`ASt1JOIN(SELECTROUND(RAND()*((SELECTMAX(id)FROM`table`)–(SELECTMIN(id)FROM`table`))+(SELECTMIN(id)FROM`table`))ASid)ASt2
  3. WHEREt1.id>=t2.id
  4. ORDERBYt1.idLIMIT10;

再把语句完善一下,加上MIN(id)的判断,我在最开始测试的时候,就是因为没有加上MIN(id)的判断,结果有一半的时间总是查询到表中的前面几行.

完整查询语句是,代码如下:

  1. SELECT*FROM`table`
  2. WHEREid>=(SELECTfloor(RAND()*((SELECTMAX(id)FROM`table`)-(SELECTMIN(id)FROM`table`))+(SELECTMIN(id)FROM`table`)))
  3. ORDERBYidLIMIT1;
  4. SELECT*
  5. FROM`table`ASt1JOIN(SELECTROUND(RAND()*((SELECTMAX(id)FROM`table`)-(SELECTMIN(id)FROM`table`))+(SELECTMIN(id)FROM`table`))ASid)ASt2--phpfensi.com
  6. WHEREt1.id>=t2.id
  7. ORDERBYt1.idLIMIT1;

前者花费时间 0.147433 秒

后者花费时间 0.015130 秒

都是查询10咨物.

相关广告
  • mysql随机取数据的几种高效率方法 mysql随机取数据的几种高效率方法 mysql随机取数据的几种高效率方法
相关阅读

mysql随机取数据的几种高效率方法

2019/10/10 17:32:53 | 谷歌SEO算法 | SEO优化