innodb 索引

innodb索引采用B+树结构。

B树数据存储是有序的,每个叶子节点到根的距离是一样的。根节点保存了指向子节点的指针,innodb会根据指针查找数据。叶子节点只有指向被索引数据的指针,没有指向其他节点的指针,而B+数的每一个叶子节点有指向下一个节点的连接,实现快速遍历。

B树的深度取决于表的大小。

B数索引的局限:

      1.只能从索引最左边开始

      2.不能跳过索引列

      3.不能使用第一个范围条件列后面的列

      造成上述局限主要原因是mysql优化器和存储引擎造成的。

哈希索引: 它只对使用了索引的每一列的精确查找有用。对于每一行,存储引擎计算出了被索引列的哈息码。它把哈希码保存在索引中,并且保存了一个指向哈希表中每一行的指针

哈希索引局限:

      1.索引只包含了哈希码和行指针,而不是值自身。

      2.mysql不能使用哈希索引进行排序。

      3.不支持部分建匹配,因为它们是由被索引的全部值计算出来的。

      4.不支持范围查询,只支持=,IN()和<=>的相等比较

      5.访问哈希索引很快,除非发生碰到相同的哈希码。当碰到相同的哈希码时,存储引擎必须访问链表中的每一个行的指针,然后逐行进行比较,确定正确的数据。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值