Innodb表select查询顺序

发布时间 - 2026-01-10 22:14:59    点击率:

今天知数堂一个学生反馈说在优化课中老师讲Innodb是以主键排序存储,读取的时间以主键为顺序读取,但发现个例外,如下:

CREATE TABLE zst_t1 ( 

uid int(10) NOT NULL AUTO_INCREMENT, 

id int(11) NOT NULL, 

PRIMARY KEY ( uid ), 

KEY idx_id ( id ) 

) ENGINE=InnoDB;'

写入数据:

INSERT INTO zst_t1 VALUES (1,1),(12,1),(22,1),(23,1),(33,1),(2,2),(3,2),(10,2),(11,2),(4,4),(13,4),(14,4); 

执行查询:

select * from zst_t1;

为什么这个顺序是乱的,不按顺序排列呢?难道Innodb表并不是全按主键存储?

使用innodb_ruby这个工具查看一下存储结构什么样

看样子存储还是按主键排序存储的。没毛病。

再来看一下该表的索引:

看到这里应该明白了怎么会事了吧,原来这个查询是走的索引覆盖,没有在进行回表读取原数据。另外,也在此说明,Innodb二索索引包含了主键存储。

来继续证明一下:

看到using index 吧,表示这个查询利用索引查询出来结果,不用读取原表。

那么我们给造一个通过主键读取数据操作:

select * from zst_t1 use index(primary);

select * from zst_t1 use index(primary);  #确认一下。

总结:

这个其实就是一个索引包含的查询案例。 如果静下来思考一下,也许很快就明白了。也不用这样去查问题。

技术在于折腾,多搞搞就明白了:)。


# Innodb表  # select查询顺序  # 可以改善mysql性能的InnoDB配置参数  # MySQL Innodb表导致死锁日志情况分析与归纳  # mysql更改引擎(InnoDB  # MyISAM)的方法  # MySQL不支持InnoDB的解决方法  # Mysql启动中 InnoDB: Error: log file ./ib_logfile0 is   # 浅谈MySQL存储引擎选择 InnoDB与MyISAM的优缺点分析  # Xtrabackup使用指南 InnoDB数据备份工具  # MYSQL无法启动提示: Default storage engine (InnoDB) is no  # MySQL数据库INNODB表损坏修复处理过程分享  # 主键  # 明白了  # 在此  # 再来  # 看一下  # 事了  # 不按  # 去查  # 静下来  # 顺序排列  # 课中  # 包含了  # int  # uid  # id  # NULL  # AUTO_INCREMENT  # pre  # class  # 知数堂 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  免费网站制作appp,免费制作app哪个平台好?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  微信小程序 require机制详解及实例代码  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  制作电商网页,电商供应链怎么做?  JavaScript如何实现类型判断_typeof和instanceof有什么区别  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  大连 网站制作,大连天途有线官网?  专业商城网站制作公司有哪些,pi商城官网是哪个?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  网站页面设计需要考虑到这些问题  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  javascript如何操作浏览器历史记录_怎样实现无刷新导航  如何在万网自助建站中设置域名及备案?  Python3.6正式版新特性预览  如何快速查询域名建站关键信息?  EditPlus中的正则表达式 实战(1)  图册素材网站设计制作软件,图册的导出方式有几种?  如何快速上传建站程序避免常见错误?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  C#如何调用原生C++ COM对象详解  如何正确下载安装西数主机建站助手?  大连网站制作公司哪家好一点,大连买房网站哪个好?  Laravel Session怎么存储_Laravel Session驱动配置详解  EditPlus中的正则表达式 实战(4)  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Laravel怎么调用外部API_Laravel Http Client客户端使用  Java垃圾回收器的方法和原理总结  实例解析Array和String方法  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  如何在景安服务器上快速搭建个人网站?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  JavaScript数据类型有哪些_如何准确判断一个变量的类型  在线教育网站制作平台,山西立德教育官网?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何用PHP快速搭建高效网站?分步指南  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  JS经典正则表达式笔试题汇总