索引1(总结)

索引的作用

	索引的出现为了提高查询的效率

可以把索引类比于书的目录,索引就是每一张表的目录

索引的常见模型

哈希表(适合等值查询)

hash表的实现原理: 把值放在数组中,用一个hash函数把key换算成一个确定的位置
然后把Value放在这个数组的位置

优点: 增加新的数据时速度很快
缺点: 做区间查询的速度很慢

有序数组

优点: 等值查询和区间查询都很快
缺点: 新增数据的成本太高

二叉搜索树

为了保证二叉树的搜索复杂度是O(log(N)),就需要保证这棵树就是平衡二叉树,为了做这个保证,更新的时间复杂度也是O(log(N))

mysql里面InnoDB的索引

1. 在InnoDB中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表叫索引组织表
2. InnoDB使用了B+树索引模型,所以数据都是存储在B+树里面的
3. 每一个索引在InnoDB里面对应一个B+树

InnoDB索引的分类

主键索引(聚簇索引)

只是叶子节点存放数据信息,并且叶子节点形成一个链表(双向链表),用来满足范围查询

非主键索引(二级索引)

二级索引的叶子节点放的是主键ID的值,要通过主键ID来访问主键索引,然后从主键索引上获取数据

InnoDB索引的维护

1. B+树为了维护索引的有序性,在插入新值的时候要做必要的维护,有可能会造成节点的分裂,从而增大IO消耗,因此最好还是使用自增主键索引
2. 主键索引字段不宜过大,因为非主键索引的叶子节点会存放主键索引的值,比较浪费空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值