• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL Order By Rand()效率分析

MySQL Order By Rand()效率分析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql order by rand,order by rand,order by rand limit,order rand,php order rand等相关知识,希望本文的分享对您有所帮助
最近由于需要大概研究了一下MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。

但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。

但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。
You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times.
搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据。
看来采用JOIN的语法比直接在WHERE中使用函数效率还要高很多。 </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL Order By Rand()效率分析
  • mysql中RAND()随便查询记录效率问题和解决办法分享
  • MYSQL随机抽取查询 MySQL Order By Rand()效率问题
  • MySQL中的RAND()函数使用详解
  • MySQL下的RAND()优化案例分析
  • MySQL优化之对RAND()的优化方法

相关文章

  • 2017-05-11MySQL中表复制:create table like 与 create table as select
  • 2018-12-05Access使用宏控制程序 4.常用的宏操作
  • 2018-12-05有关检索信息的课程推荐10篇
  • 2017-05-11mysql模糊查询like和regexp小结
  • 2017-05-11dos或wamp下修改mysql密码的具体方法
  • 2018-12-05关于mysql_list_dbs()函数的10篇文章推荐
  • 2018-12-05MYSQL日志与备份还原详解
  • 2017-05-11mysql导入sql文件命令和mysql远程登陆使用详解
  • 2018-12-05 [话题讨论]想成立一个程序员关爱基金
  • 2017-05-11Win2003服务器安装及设置教程 MySQL安全设置图文教程

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql远程机器导入导出数据 锁表不锁表 部分数据或全部
    • mysql索引是什么及怎么使用的?整理的很详细
    • php中文件锁解决多进程同时读写一个文件问题的解决方法
    • sql2005 create file遇到操作系统错误5拒绝访问 错误1802
    • SQLServer 2005 列所有存储过程的语句
    • 彻底卸载MySQL的方法分享
    • 查询优化之EXPLAIN的使用分析
    • MySQL Order By索引优化方法
    • 四个比较经典的sql编程问题
    • MySQL数据库不支持中文的解决办法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有