1:B+树索引(o(logn) 2:hash索引 (key=>value) 3:全文索引 4:R-tree索引
1:汇集索引 2:飞汇集索引
1:主键索引 2:普通索引 3:惟一索引
在B+树中,非叶子节点上是不存数据的,仅存储键值。由于在数据中的页大小是固定的,Innodb中页的默认大小是16kb,若是不存储数据,那么节点就能够存储更多的键值,相应的树的节数更大,对于一样的数据量来讲,须要的树高就会变低。如此一来查询数据的时候进行磁盘的IO次数就会减小,提高查询效率。
因为B+树的节数等于键值数量,假设B+树的一个结点能够存储1000个键值,那么3层的B+树能够存储100010001000=10亿个数据。而且通常节点是常驻内存的,因此查找10亿个数据,只要两次IO
B+树的叶子节点中的索引数据是按照顺序排序的,而且叶子节点间是经过双向链表进行连接数据结构
主键索引code
主键索引的叶子节点存的整行数据,主键索引也称为聚簇索引
非主键索引排序
非主键索引的叶子节点内容存在的主键的值,非主键索引也成为二级索引或是普通索引
主键索引,索引查询出来直接就是查询的值
非主键索引,先搜索查到主键索引,而后主键索引在搜索一次。这个过程成为回表索引