Mysql 索引结构直观图解介绍
MySQL索引结构直观:以数据行为例
一、模拟创建原始数据
我们模拟一个数据表,引擎为MyISAM。这个表包含四个字段:id、a、b和c,共有21行数据。为了方便说明,我们将这些数据随机排列后展示,并假设主键是按照数字1到27的顺序排列。我们将基于这个原始数据来展示索引的创建和效果。
二、创建索引a
当我们为字段a创建索引时,数据表的排序规则会发生变化。索引其实就是一个数据结构,建立索引a意味着根据字段a的规则来建立一个新的结构。在这个新的排序结构中,数据行不再按照主键ID的顺序排列,而是根据字段a的值来排序。例如,当字段a的值相它们的主键ID会按照相近的顺序排列。
三、创建联合索引(a,b)
当创建联合索引(a,b)时,排序规则会先按照字段a排序,然后在a的基础上按照字段b排序。这意味着在索引a的基础上,字段b也参与了排序。当字段a和b的值都相他们的排列顺序仍然是由主键ID决定的。
四、创建联合索引(a,b,c)
对于联合索引(a,b,c),首先按照字段a和b的联合索引排序,然后在(a,b)的基础上按照字段c排序。这种多级排序的结构使得数据表在查询时能够更高效地定位到目标数据。
1. 如果没有建立索引,数据表中的数据是按照主键ID递增的顺序排列的。
2. 当建立了索引a、联合索引(a,b)或联合索引(a,b,c)后,数据表的排序规则会发生变化,生成一个新的索引结构(B+TREE),用于快速查找数据。
3. 不同的索引对应不同的数据排序规则。
4. 建立索引时,可以兼顾多个字段的索引,但不必重复建立已经涵盖的索引。例如,如果已经建立了索引abc,就不需要再单独为字段a或ab建立索引。
通过以上的模拟和,我们可以更直观地理解MySQL索引的结构和工作原理。索引就像房间的登记表,帮助我们快速找到数据在物理磁盘上的位置。没有索引时,我们就像不知道目的地一样,需要逐个房间寻找;而有了索引,我们就可以快速定位到目标数据的位置。
编程语言
- Mysql 索引结构直观图解介绍
- 使用jQuery UI库开发Web界面的简单入门指引
- 静态页面利用JS读取cookies记住用户信息
- PHP实现数组根据某个单元字段排序操作示例
- javascript的switch用法注意事项分析
- JS排序算法之希尔排序与快速排序实现方法
- 如何实现chrome浏览器关闭页面时弹出“确定要离
- jquery中show()、hide()和toggle()用法实例
- jQuery中$.grep() 过滤函数 数组过滤
- Asp.net图片上传实现预览效果的简单代码
- Windows8下mysql 5.6.15 安装配置方法图文教程
- js限制文本框的输入内容代码分享(3类)
- WordPress中重置文章循环的rewind_posts()函数讲解
- 正则表达式(RegExp)判断文本框中是否包含特殊符号
- 微信小程序 图片宽度自适应的实现
- jQuery实现的网格线绘制方法