MySQL索引 - 索引的类型
索引的类型 B-Tree索引 B-Tree 索引 通常意味着所有的值都是 按顺序存储 的,并且每一个叶子页到根的距离相同。 B-Tree 索引 能够 加快访问数据的速度 ,存储引擎 不再需要进行全表扫描 来获取需要的数据,取而代之的是 从索引的根节点开始搜索 。 B-Tree 索引 适用于全键值、键值范围或键前缀查找( 最左前缀原则 )。 哈希索引 哈希索引 基于哈希表实现,只有 精确匹配索引 所有列的查询才有效。 哈希索引 是Memory引擎表的默认索引类型,但Memory同时也支持B-Tree索引。 哈希索引 自身 只需存储对应的哈希值和行指针 ,而 不存储字段值 ,所以索引的结构十分紧凑,这也让哈希索引查找的速度非常快。 哈希索引 数据并不是按照索引值顺序存储的,所以 无法用于排序 。 哈希索引 不支持部分索引列匹配查找 ,因为哈希索引始终是使用索引列的全部内容来计算哈希值的。例如数据列(A,B)上建立索引,如果查询只有数据列A,则无法使用该索引。 哈希索引 不支持任何范围查询 ,如WHERE score > 60。 哈希索引 只支持等值比较查询 ,包括=、IN()、<=>(注意<>和<=>是不同的操作)。 介绍一个 使用场景 :如需要存储大量的URL,并需要根据URL进行搜索查找。如果使用B-Tree来存储URL,存储的内容就会非常大,因为URL本身很长。 创建表 1