MySql的索引

索引的存储

B-Tree索引

innodb存储引擎使用的B+ Tree。每个叶子节点包含下一个叶子节点的指针,其所有的值都是有序存储,并且每个叶子节点至根节点的距离是相同的。

索引查询

保证按照索引的最左边前缀(leftmost prefix of the index)来进行查询(必须从索引的最左边的列开始,不能跳过索引列,不能使用索引中范围条件右边的列(eg:like))。

索引排序

  • 按索引顺序扫描。多表查询且ORDER BY中所有列都是第个表的列,其他情况使用filesort。
  • filesort。在内存中基于快速排序算法对数据进行排序:
  1. 两次扫描算法(Two Passes)。将需要排序的字段和对应行数据(第一次)的指针在内存(sort_buffer_size设定的大小)中进行排序,排序完成后据指针信息取出所有的列信息(第二次,I/O消耗大),内存消耗较小。
  2. 一次扫描算法(Single Passes)。直接将列数据取出在内存中进行排序。

通过max_length_for_sort_data和取出的最大字段的大小进行比较,如果大于max_length_for_sort_data则选择第一种算法,反之则选择第二种算法。

聚簇索引

inno

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值