mysql索引

innoDB B+树的存储结构结构  决定了B-Tree索引支持一下查询类型:

key(last_name,firset_name,job)

1.全值匹配

和索引中的所有列进行匹配:查找姓l 名cc 职业工程师的人

2.匹配最左列

可查找所有姓为l的人,即用索引的第一列

3.匹配列前缀

查找所有以J开头的姓的人。这里也只使用了索引的第一列

4.匹配范围值

查找姓名在Allen和Barrymore之间的人。这里只使用了索引的第一列

5.精确匹配某一列并范围匹配另一列

第一列last_name精确匹配,第二列firt_name范围匹配

6.只访问索引的查询

即查询只需访问索引,而无需访问数据行

 

因为索引树中的节点是有序的,所以出了按值查找之外,索引还可以用于查询中的order by操作,一般来说如果b—Tree可以按照某种方式查找到值,那么也可以按照这种方式用于排序,所以,如果order by子句满足前面列出的几种查询类型。则这个索引也可以满足对应的排序需求

 

 

限制:

1.如果不是按照索引的最左列开始查找,则无法使用索引

2.不能跳过索引中的列

3.如果查询中有某个列的范围查询,则其右边所有列都无法使用索引优化查找

 

mysql索引

上一篇:mybatis-oracle(ssi2框架) 批量增加


下一篇:在BAE中使用mongoose操作mongodb