本博客是用来记录本身学习的过程函数
2.Hash 哈希学习
哈希索引能以O(1)时间进行查找,可是没有了有序性:对象
没法用于排序与分组 只支持精确查找,blog
没法用于部分查找和范围查找 InnoDB储存引擎有一个特殊的功能叫"自适应哈希索引",当某个索引值被使用的很是频繁时,会在B+ Tree索引之上在建立一个哈希索引,这个就让B+Tree索引具备哈希索引的一些优势,例如快速的哈希查找。排序
3.B Tree索引
B+Tree MYSQL 默认的索引类型 是大多数MySQL储存引擎的默认索引类型。文档
由于再也不须要进行全表扫描,只须要对树进行搜索便可,因此查找速度快不少。博客
除了用于查找,还能够用于排序和分组 能够指定多个列做为索引列,多个索引列共同组成键 使用于全键值,键值范围和键前缀查找。其中键前缀查找只适用于左前缀查找。select
若是不是按照索引列的顺序查找,则没法使用索引 InnoDB的B+ Tree索引分为主索引和辅助索引,主索引的叶子节点 的数据域记录着完整的数据记录。这种索引被称为汇集索引。由于没法把数据行存放在两个不一样的地方。因此一个表只能有一个。搜索
辅助索引的叶子节点数据域记录着主键值,当使用辅助索引查找时,先查找主键值再进入主索引进行查找
4.R-Tree 空间数据索引
MyISAM储存引擎支持空间数据索引(R-Tree),能够用于地理数据存储,空间数据索引会从全部维度来索引数据,能够有效地使用任意维度来进行组合查询。必须使用GIS相关函数来维护数据
InnoDB和MyISAM b+tree索引区别
1.MyISAM b+tree 子节点使用的是存储对象的地址(非汇集索引),InnoDB子节点储存的是数据