表格对比了MyISAM、InnoDB、Memory这3个常用引擎支持的索引类型:
索引 | MyISAM引擎 | InnoDB引擎 | Memory引擎 |
B-Tree索引 | 支持 | 支持 | 支持 |
HASH索引 | 不支持 | 不支持 | 支持 |
R-Tree索引 | 支持 | 不支持 | 不支持 |
Full-text索引 | 支持 | 不支持 | 不支持 |
比较常用的索引是B-Tree索引和Hash索引,只有Memory/Heap引擎支持Hash索引。Hash索引适用于Key-Value查询,通过Hash索引要比通过B-Tree索引查询更迅速;Hash索引不适用范围查询,例如<、>、<=、>=这类操作。如果使用Memory/Heap引擎并且where 条件中不使用“=”进行索引列,那么不会用到索引。Memory/Heap引擎只有在“=”的条件下才会使用索引。