order by rand()来实现

select * from table order by rand();

内存临时表

order by rand() 是一般通过内存临时表排序,可以通过执行计划explain中Extra字段显示Using temporary观察到。

由于是内存排序,回表过程不涉及机械磁盘io操作,速度较快,因此使用的是rowId 排序的方式。

内存临时表使用的是memory引擎,此时的rowId相当于数组下标.

磁盘临时表

tmp_table_size这个配置限制了内存临时表的大小,默认值是16M。如果临时表大

小超过了tmp_table_size,那么内存临时表就会转成磁盘临时表。

磁盘临时表使用的引擎默认是InnoDB,是由参数internal_tmp_disk_storage_engine控制的。

当使用磁盘临时表的时候,对应的就是一个没有显式索引的InnoDB表的排序过程

此时的排序使用归并排序或优先队列排序。

当排序的数据使用limit时,数据量不大时,使用优先队列。数据量大时,仍使用文件的归并排序。

使用随机计算方式

随机id

查询到最大最小id,取之间的随机数,再根据id查询。

快,但不适用于常出现id空洞的数据

随机行之后数据

查询到总行数,根据总行数取随机数,使用limit取随机行数之后的数据。

mysql随机显示记录_MySQL随机读取表中记录相关推荐

  1. mysql 最多查询数据库_mysql 查询全表某字段值最大的10条数据

    展开全部 select * from 表 order by 要最大值的字段 desc limit 0,10 FILE: 在MySQL服务器上读写文件.62616964757a686964616fe59 ...

  2. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  3. mysql 两列数据互换_mysql 实现互换表中两列数据方法简单实例

    由于最近项目,有这样一个需求,是把数据库中的两列数据互换,经过好久才搞定,这里写个简单实例,做过记录. 1.创建表及记录用于测试 CREATE TABLE `product` ( `id` int(1 ...

  4. 数据表的修改、删除与表中记录的录入

    实验4 MySQL数据表的修改.删除与表中记录的录入 目录 实验4 MySQL数据表的修改.删除与表中记录的录入 实验目的: 1.掌握MySQL中数据表结构的修改.删除: 2.掌握MySQL表中记录的 ...

  5. 表的插入、更新、删除、合并操作_18_清空表中记录

    清空表中记录 需求描述 需求:删除dept表里deptno为50的记录,但数据不可再恢复. 解决方法:这里通过TRUNCATE TABLE TableName方式来删除数据. 注: 数据库数据集SQL ...

  6. 表的插入、更新、删除、合并操作_17_按照条件删除表中记录

    按照条件删除表中记录 需求描述 需求:删除dept表里deptno为50的记录,但后期可通过数据库日志恢复. 解决方法:这里通过DELETE FROM TableName WHERE Columnam ...

  7. mysql为什么行数据库_关系数据表中的行称为什么?

    在一个二维表中,水平方向的行称为元组,每一行是一个元组:元组对应表中的一个具体记录. 数据元组也称为记录.一个数据表中的每一个记录均有一个惟一的编号(记录号).一个记录也就是数据表中的一行. 元组(t ...

  8. MySQL之创建函数,一次性插入表中多行数据

    MySQL之创建函数,一次性插入表中多行数据 一.MySQL之使用存储过程创建函数,一次性插入表中多行数据 一.MySQL之使用存储过程创建函数,一次性插入表中多行数据 #DELIMITER 的使用 ...

  9. DB2: Reorg之后表中记录在磁盘上存放的顺序

    对DB2的表做重组之后,表中记录在磁盘上的存放顺序可能会发生改变,那么到底是怎么存放的呢?之前写过一篇文章,链接如下: Db2中"SELECT * FROM TABLE"时返回记录 ...

最新文章

  1. LeetCode Sudoku Solver
  2. 移植YAFFS2文件系统到linux3.18.4内核(原)
  3. 管理集群中的 crs 管理员
  4. 让VC编译的Release版本程序在其他机器上顺利运行
  5. ubuntu创建新用户并设置sudo权限
  6. 块编码、对象编码、小波编码、分布式编码【转贴】
  7. 恭喜你!在25岁前看到了这篇最最靠谱的深度学习入门指南
  8. 北斗导航 | 卫星导航系统中的GNSS信号技术参数/技术参数/规格
  9. 计算机专业买什么牌子的笔记本,买笔记本电脑什么牌子好(2020年6月笔记本电脑推荐)...
  10. 小游戏,客户端游戏版号自助申请教程
  11. switch结构详解
  12. 单链表的创建、删除、反转、插入、排序操作
  13. WebGL着色器内置变量gl_PointSize、gl_Position、gl_FragColor、gl_FragCoord、gl_PointCoord
  14. 用 Dev-C++ 编写简单的走迷宫小游戏
  15. 360桌面助手待办事项同步/迁移的方法(从一台电脑迁移到另外一台电脑上)
  16. 自定义彩色进度条效果
  17. 三维点云学习(6)7-3D Object Detection-KITTI object detection evaluation(2)-kitt 数据集文件分卷解压方式
  18. OpenHarmony学习笔记——I2C驱动0.96OLED屏幕
  19. 那是你的计算机怎么用英语表示,“I potato you”可不是“我土豆你”,那这个potato到底啥意思?...
  20. aegisub32汉化_Aegisub中文版(aegisub字幕特效)V3.2.3 免费版

热门文章

  1. supervisor使用指南
  2. 描述linux目录结构以及目录结构命名规定
  3. Mvc项目解决方案分析
  4. 【BZOJ 1266】 [AHOI2006]上学路线route
  5. VC++2013出现bug: 无法打开源文件“stdafx.h”
  6. SqlServerException:拒绝对表对象的select,insert权限解决(新建账号导致的问题)
  7. C# viewstate
  8. MAVEN_OPTS=-Xms128m -Xmx512m
  9. 机房USB被禁用的方法
  10. BCB 串口控件的使用 TComm