mysql索引

聚簇索引

定义:并不是一种单独的索引类型,而是一种数据存储方式,它实际上是在同一结构中保存了 B-tree 索引和数据行。聚簇索引具有唯一性,通常默认主键为聚簇索引,如果没有定义主键,会选择非空的唯一索引代替。如果没有这样的索引,会隐式的定义一个主键来作为聚簇索引。
优点:
1、行数据和聚簇索引的叶子节点存储在一起,同一页中会有多条行数据,访问同一数据页不同行记录时,已经把页加载到了Buffer中(缓存器),再次访问时,会在内存中完成访问,不必访问磁盘。
2、聚簇索引对于主键的排序查找和范围查找速度非常快
缺点:
1、插入速度严重依赖于插入顺序,按照主键的顺序插入是最快的方式,否则将会出现页分裂,严重影响性能。因此,对于InnoDB表,我们一般都会定义一个自增的ID列为主键
2、更新主键的代价很高,因为将会导致被更新的行移动。因此,对于InnoDB表,我们一般定义主键为不可更新。
3、二级索引访问需要两次索引查找,第一次找到主键值,第二次根据主键值找到行数据。

辅助索引

定义:在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找。辅助索引叶子节点存储的不再是行的物理位置,而是主键值。通过辅助索引首先找到的是主键值,再通过主键值找到数据行的数据页,再通过数据页中的Page Directory找到数据行。
优点:对数据新增/修改/删除的影响很小
缺点:检索效率比聚集索引低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值