SQL优化--索引

MYSQL目前支持4种索引:

  1. B-Tree索引:最常见的索引类型,大部分引擎都支持B树索引。
  2. Hash索引:只有Memory引擎支持,使用场景简单。
  3. R-Tree索引(空间索引) :空间索引是MyISAM的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少。
  4. Full-Text(全文索引):也是MyISAM的一个特殊索引类型,主要用于全文索引,InnoDB从MySQL5.6版本开始提供对全文索引的支持。
索引 MyISAM引擎 InnoDB引擎 Memory引擎
B-Tree索引 支持 支持 支持
HASH索引 不支持 不支持 支持
R-Tree索引 支持 不支持 不支持
Full-text索引 支持 暂不支持 不支持

总结:Hash索引相对简单,只有Memory/Heap引擎支持Hash索引,因为适用于Key-Value查询,所以比B树更快,但它不适用范围查询。Memory/Heap引擎只有在“=”的条件下才会使用索引。

在利用B-Tree索引时,可以进行全关键字、关键字范围和关键字前缀查询。

  • 全关键字:explain输出结果中字段type的值const,表示是常量。
  • 关键字范围:type为range
  • 匹配最左前缀:type为ref。注意,在col1+col2+col3字段上的联合索引能够被包含col1、(col1+col2)、(col1+col2+col3)的等值查询利用到,不能被col2、(col2+col3)的等值查询利用到。

你可能感兴趣的:(mysql)