Mysql数据库的索引有Btree和Hash。
B+tree,加强版多路平衡查找树,一般采用Balance Tree结构存储,数据都存储在了叶子节点,检索时需要从根节点到叶子节点;
Hash是进行Hash运算后进行查找,查找效率非常高,但只能用于等值查询,不能用于范围查找(<、>),另外如果遇到大量Hash值相同时,效率不一定比Btree效率高。Hash不能范围查找是硬伤。
B+tree是Btree的加强版,Btree有的特性B+tree都有,B+ tree把数据都存储在了叶子节点。
实际开发中,一般采用Btree索引的查询效率就能满足需求。
另外系统的文件管理也用到了基于Btree的索引查找。