北京SEO

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

2019/10/10/17:32:53  阅读:1881  来源:谷歌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随机取数据的几种高效率方法

相关阅读

热门评论

Seven 绯闻SEO Seven 绯闻SEO

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

总篇数179

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法