博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[MySQL] 索引中的b树索引
阅读量:7246 次
发布时间:2019-06-29

本文共 789 字,大约阅读时间需要 2 分钟。

1.索引如果没有特别指明类型,一般是说b树索引,b树索引使用b树数据结构存储数据,实际上很多存储引擎使用的是b+树,每一个叶子节点都包含指向下一个叶子节点的指针,从而方便叶子节点的范围遍历

2.底层的存储引擎也可能使用不同的存储结构,比如NDB集群存储引擎使用了T树,InnoDB使用的是B+树

3.MyISAM使用前缀压缩技术使得索引更小,InnoDB按照原数据格式进行存储,MyISAM通过数据的物理位置引用被索引的行,InnoDB根据主键引用被索引的行

4.b树意味着所有的值是按照顺序存储的,并且每一个叶子页到根的距离相同

5.b树索引能够加快访问数据的速度,存储引擎不需要再进行全表扫描来获取需要的数据,取而代之的是从索引的根节点开始进行搜索,根节点的槽中存放了指向子节点的指针,存储引擎根据这些指针向下层查找.通过比较节点页的值和要查找的值可以找到合适的指针进入下层子节点.树的深度和表的大小直接相关

6.叶子节点比较特别,他们的指针指向的是被索引的数据,而不是其他的节点页

7.b树对索引列是顺序存储的,所以很适合查找范围数据.

8.索引对多个值进行排序的依据是,定义索引时列的顺序,比如联合索引key(a,b,c),这三个列的顺序

9.上面的联合索引对以下查询语句有效

全值匹配

where a=x and b=x and c=x

最左前缀

where a=x

匹配列前缀

where a like x%

匹配范围值

where a>x and a<x

精确匹配某一列范围匹配另一列 where a=x and b like x%

10.因为索引树的节点是有序的,可以用于查询中的order by操作,如果可以按照某种方式查到值,那么也可以按这种方式排序

转载于:https://www.cnblogs.com/taoshihan/p/10638756.html

你可能感兴趣的文章
时间模块
查看>>
Docker Mysql部署
查看>>
Ubuntu安装sublime
查看>>
React.js实现原生js拖拽效果及思考
查看>>
搭建负载均衡的环境(利用虚拟机上的四台centos)
查看>>
消息队列的面试题2
查看>>
SublimeText2 快捷键一览表
查看>>
阿里云RDS数据库备份文件恢复到本地数据库
查看>>
嵌入式软件设计第10次实验报告
查看>>
【笔记】MD5加密
查看>>
效率神器 Workflow 实例分享
查看>>
我的Android进阶之旅------>Android安全退出应用程序的几种方式
查看>>
我的Android进阶之旅------>Android中StateListDrawable支持的状态
查看>>
Java运行时内存划分
查看>>
To do List
查看>>
live555运行时报错:StreamParser internal error ( 86451 + 64000 > 150000)
查看>>
常识积累
查看>>
HTML 页面元素介绍
查看>>
DevOps最佳工具集实践
查看>>
面试题5
查看>>