一、随机查询一条数据

方法一:SELECT * FROM `table` ORDER BY RAND() limit 1

评价:不建议使用,效率非常低,官方文档中进行说明:Order By和RAND()连用,会多次扫描表,导致速度变慢。

方法二:SELECT * FROM `table`

WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`)))

ORDER BY id LIMIT 1;

解释:SELECT MAX(id) FROM `table` 这句话查询出最大的id值

SELECT floor(RAND() * (SELECT MAX(id) FROM `table`)) 这句获取一个小于MAX(id)的随机数

WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`))) 这句话筛选出所有的大于生成随机数的id的行

然后最后就把大于这个随机id的行查询出来,然后按照id排序,选择第一个,就相当与获取了所有行中随机的一行。

评价:有问题,如果id不是从0开始的话,比如从10000开始自增,那么 SELECT floor(RAND() * (SELECT MAX(id) FROM `table`)) 得到的将是会哟很大概率得到小于10000的值,经过where限定的查询结果将会是所有的查询结果的几率变大,最后limit 1获取的是第一行数据的几率变高。

方法三:SELECT * FR

mysql随机查询 uuid_mysql实现随机查询经验谈相关推荐

  1. 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  2. MariaDB/MySQL从数据库中选择随机的行

    MariaDB/MySQL从数据库中选择随机的行 一个比较传统的做法是使用sql自带的rand函数,从而达到随机排序的目的. SELECT column FROM table ORDER BY RAN ...

  3. mysql高效率写法_mysql高效率随机获取n条数据写法

    今天做项目遇到这个问题,本来想用mysql自带的随机函数来实现,但是想到这样做功能是实现了,但是效率真的好差!一下子想不到好的方法,就去网上找了一下,记录下来,好好研究学习一下. ID连续的情况下(注 ...

  4. MySQL讲义第 40 讲——select 查询之函数(3):数学函数

    MySQL讲义第40讲--select 查询之函数(3):数学函数 文章目录 MySQL讲义第40讲--select 查询之函数(3):数学函数 一.数据准备 二.MySQL 数学函数介绍 1.ABS ...

  5. hbase查询性对比 mysql_查询MYSQL和查询HBASE速度比较

    上一篇文章:我要上谷歌 Mysql,关系型数据库: HBase,NoSql数据库. 查询Mysql和查询HBase,到底哪个速度快呢? 与一些真正的大牛讨论时,他们说HBase写入速度,可以达到每秒1 ...

  6. mysql 近几天内_MYSQL查询一周内的数据(最近7天的)

    select * from wap_content where week(created_at) = week(now) 如果你要严格要求是某一年的,那可以这样 查询一天: select * from ...

  7. MySQL学习笔记_上(select查询)

      上次整理了一些练习发到博客上了,也说要发基础的,整理了一下午才算是把查询那块的勉强整理完,下次再整理其他的,另外还在写设计模式和数据结构的草稿,写的差不多会慢慢发的,这两项算是副线发展,主线还是按 ...

  8. mysql 慢日志 作用_MySQL慢查询日志的作用和开启

    前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...

  9. 高性能的MySQL(6)查询慢与重构查询

    只有好的库表结构.合理的索引还不够,我们还需要合理的设计查询,齐头并进,一个不少才能充分发挥MySQL的优势. 一.查询为什么会慢? 每一个查询由一系列的子任务组成,每个子任务都会消耗一定的时间.这个 ...

最新文章

  1. 同步异步网络搜集到的比喻
  2. 微信、QQ都在用的腾讯云EB级对象存储架构剖析
  3. 【C++ Priemr | 15】派生类向基类转换的可访问性
  4. python去停用词用nltk_使用nltk删除英文停用词
  5. JS实现监控微信小程序
  6. JCheckBox 默认选择_了解GoldWave使用习惯的一些默认设置
  7. PS_02_大师之路
  8. 红外图像高低温校正【待补充】
  9. 超越LLMNR /NBNS欺骗 - 利用Active Directory集成的DNS
  10. 前端和python哪个工资高_前端和后端哪个工资高
  11. CSS垂直居中img
  12. JVM-G1垃圾回收器:G1回收流程(Rset、CSet、SATB)
  13. 不会吧,不会吧程序员这样的消费观
  14. ArcGIS矢量数据模型
  15. 增强学习和OpeAI Gym的介绍:基础增强学习问题的演示
  16. 文件上传upload-labs第四关
  17. Failed to connect to github-production-release-asset-2e65be.s3.amazonaws.com port 443: Timed out
  18. Mysql导出数据的几种方式
  19. IBM Power redhat ppc64le 7.3安装Mysql5.7.18
  20. PyTorch :transforms 数据增强:裁剪、翻转、旋转

热门文章

  1. 清北学堂培训2019.4.7
  2. MySQL性能优化速记
  3. 第 13 章 编码风格
  4. 实战postfix邮件发送
  5. SQLiteOpenHelper类
  6. iOS面试题总结 二
  7. 在Windows平台下使用安装GCC
  8. 从MSSQL添加对Oracle的链接服务器的存储过程
  9. BS-XX-042 基于SSM实现人事管理系统
  10. jsonp解决跨域问题