索引

索引是的工作机制加速对数据检索的数据结构

hashtable
树形结构:二叉树,红黑树

hash 的缺点:
在等值查询,单行查询很快,但不能支持范围查询

二叉树的缺点
树的高度等于io次数,树太高,io次数太多,
页作为单位 ,io操作加载的目标的数据太少

MySQL为什么选择B+tree
BTree:多路(叉)树,是一个绝对平衡的树(不断地分裂合并),最后一个叶子都在一层
BTree的搜索过程:
若干个关键字,会把数据区划分为多个区间…,以17为例
负无穷小-17 开区间
17-35
35-正无穷大
最多关键字的个数 +1 =子节点个数
**B+Tree: 划分区间
0-17
17-35
35-正无穷大
io性能更强
排序能力强 在最后的叶子节点,会指向相邻最近的头节点
基于索引扫库扫表的能力更强
性能更加稳定 ,用户体验更好

explain 执行过程 type range

易变字段不要添加索引
一条sql语句一般只会走一个索引,处于成本计算,除了or

show variables like ‘datadir’

innodb
一张表
聚集索引:以主键的方式来组织表行数据
行数据都保存在叶子节点的数据区

为什么…辅助索引需要存主键的值,

myISAM
两张表
先从树中找到磁盘地址,user.myd

公式:
比值越高离散度越好

对索引中关键字的比较遵循最左比较原则

字符大小可以比较大小吗? 可以比较

为什么 like ‘%abc’ 用不到索引

联合索引   大于之后全失效
多个列组成的一个列

覆盖索引:查询的正好的是关键字

三星索引:(衡量索引的好坏的参照)
第一颗星:where后条件越多扫描的数据越少
第二颗星:避免再次排序
第三颗星:尽可能用到覆盖索引,进行数据扫描,减少回表IO操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值