MySql索引

MySql索引的储存分类



前言

`Mysql的索引是在存储引擎中实现,不同储存引擎的索引都不一定完全相同。

一、Mysql索引分类

BTree索引

  • 最常见的索引类型,大部分引擎都支持B树索引
  • innodbl采用B+树索引(mongodb采用B树索引),高度一般为3层,可以存储2千万左右的数据(按照数据页16k, 每条数据1k估算),通过3次磁盘IO可以获取数据,高度过高将导致过多的磁盘IO,性能降低,这也是mysql数据量的存储瓶颈的考虑。
  • 实用于等值查询,范围查询,匹配左前缀,可以使用覆盖索引和前缀索引。
  • MyISAM,InnoDB,Memory都支持

Hash索引

  • 实用于key-value等值查询,不适用于范围查询
  • 只有Memory引擎支持

RTree索引(空间索引)

  • 主要用于地理空间数据类型,通常使用较少
  • MyISAM的一个特殊索引类型

Full-Text索引(全文索引)

  • 主要用于全文检索
  • MyISAM支持该索引类型,InnoDB从Mysql5.6开始支持全文索引

二、索引失效场景

  • 用or分割的条件,or前的条件中列有索引,而后面的没有索引
  • 以%号开头的like查询
  • 数据类型隐式转换
  • 复合索引的情况下,不满足最左前缀
  • MySQL估计使用索引比全表扫描更慢,则不使用索引

参考书记:
《深入浅出MySQL:数据库开发、优化与管理维护(第2版)》 作者:唐汉明 翟振兴 关宝军 王洪权 黄潇

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值