MySQL 执行计划及索引和索引优化

MySQL 执行计划及索引和索引优化

索引数据结构

二叉树
跳跃表
红黑树
哈希
B树(B-Tree)
B+Tree(B-Tree变种)

MySQL 索引

非叶子节点不存储数据,只存储索引(冗余)
叶子节点包含所有字段,且叶子节点通过指针连接,提高区间查询性能

对于索引而言,降低树的高度有利于提高查询效率;相比于B树而言,因为B+树非叶子节点只包含索引信息,所以同样大小的存储块B+树能创建更高的度同时数据的结构层级更少
(B树叶子节点深度相同,无指针,所有节点索引元素不重复,全层节点数据从左向右递增)

查询 MySQL 页大小 16384 => 16KB (磁盘数据读取是按块的,而不是位,索引减少扫描表的次数减少I/O)
SHOW GLOBAL STATUS LIKE ‘INNODB_PAGE_SIZE’

存储引擎索引:如果未建索引,MySQL会选取数据唯一列作为索引列,如果不存在符合条件的列,则会创建一个隐藏列作为索引列,用于构建B+树
MyISAM(非聚集):索引叶子节点存储数据地址,查找索引拿到 MYD 数据文件地址,再根据地址去取数据(索引文件和数据文件分离)
InnoDB(聚集):索引叶子节点存储完整数据,推荐使用整形自增数据为主键;叶子节点值是从左向右递增的,利用范围取值;非主键索引结构叶子结点存储的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪悟道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值