B-tree
最左前缀原则
- 联合索引 index(name, age, sex)
- 查询条件不包括最左列,无法使用索引
where age = 5 and sex = 1
- 跳过了索引的列,则无法完全使用索引
where name = '张三' and sex = 32
只能使用name - 查询中有某个列的范围(模糊)查询,则其右边所有列都无法使用索引
where name = '张三' and age > 32 and sex = 1
只能用name、age两列
- 查询条件不包括最左列,无法使用索引
hash
- 优点:性能一般比B-Tree好
- 缺点:
- Hash索引并不是按照索引值排序,所以没法使用排序
- 不支持部分索引列匹配查找
has(a, b) => where a= 1
无法使用索引 - 只支持等值查询(例如:=、in)不支持范围查询、模糊查询
- hash冲突越严重,性能下降越厉害
网友评论