MySQL中索引

MySQL存储引擎
MySQL索引
MySQL锁机制

索引的存储分类

  • B-Tree索引:最常见的索引类型,大部分引擎都支持B树索引,底层数据结构使用B+树
  • Hash索引:Memory、Heap引擎支持,使用场景简单。
  • R-Tree索引(空间索引):空间索引是MyISAM的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少。
  • Full-Text(全文索引):全文索引也是MyISAM的一个特殊索引类型,支持char、varchar、text列,InnoDB从MySQL5.6版本开始提供对全文索引的支持。

索引失效

Hash索引:

  • 只用于使用=或<=>操作符的等式比较,只适用于key-value查询
  • Hash索引不适用于范围查询,例如<、>、<=、>=这类操作

B-Tree索引:

  • 以%开头的LIKE查询不能利用B-Tree索引
  • 数据类型出现隐式转换的时候也不会使用索引,特别是当列类型是字符串,要将字符串用引号引起来索引才生效
  • 复合索引的情况下,假如查询条件不包含索引列最左边部分,即不满足最左原则,是不会使用复合索引的,右边可以没有,左边和中间不能缺
  • 如果MySQL估计使用索引比全表扫描更慢,则不使用索引
  • 用or分割开的条件,每一列都要有索引才能使用索引

你可能感兴趣的:(数据库相关)