Innodb表select查询顺序

作者:wubx 时间:2024-01-16 03:32:40 

今天知数堂一个学生反馈说在优化课中老师讲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表select查询顺序

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

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

Innodb表select查询顺序

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

再来看一下该表的索引:

Innodb表select查询顺序

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

来继续证明一下:

Innodb表select查询顺序

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

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

select * from zst_t1 use index(primary);

Innodb表select查询顺序

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

Innodb表select查询顺序

总结:

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

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

标签:Innodb,select
0
投稿

猜你喜欢

  • Python读取和存储yaml文件的方法

    2023-03-26 10:23:44
  • Python中使用glob和rmtree删除目录子目录及所有文件的例子

    2023-12-26 07:14:18
  • 如何利用pygame实现简单的五子棋游戏

    2023-04-12 17:48:03
  • SQL Server内存遭遇操作系统进程压榨案例分析

    2024-01-14 06:58:51
  • python 安全地删除列表元素的方法

    2022-11-20 16:21:35
  • Go语言HttpRouter路由使用方法详解

    2024-05-09 14:56:31
  • 在双python下设置python3为默认的方法

    2022-03-02 10:31:39
  • 一篇文章弄懂Python中所有数组数据类型

    2023-01-12 18:25:05
  • 利用Python的Django框架生成PDF文件的教程

    2023-07-15 14:26:04
  • Python下Fabric的简单部署方法

    2023-11-08 07:17:11
  • FrontPage XP设计教程3——网页的布局

    2008-10-11 12:20:00
  • Python+OpenCV图像处理—— 色彩空间转换

    2022-02-12 16:28:01
  • java常用正则表达式

    2023-04-24 11:38:36
  • Python实现APP自动化发微信群消息的示例代码

    2023-07-27 05:24:26
  • python 弹窗提示警告框MessageBox的实例

    2023-11-12 01:07:17
  • 安装mysql8.0.11及修改root密码、连接navicat for mysql的思路详解

    2024-01-17 14:11:18
  • Python函数式编程指南:对生成器全面讲解

    2022-09-26 05:56:17
  • Python实现115网盘自动下载的方法

    2022-08-13 21:57:33
  • javascript面向对象编程(一)

    2008-03-07 12:54:00
  • 巧用Dreamweaver制作复杂图像

    2010-09-02 12:34:00
  • asp之家 网络编程 m.aspxhome.com