普通索引与唯一索引的区别与选择

本文解释了changebuffer在数据库更新操作中的作用,指出普通索引利用changebuffer节省时间,而唯一索引由于验证数据存在性需查询,不走changebuffer。建议优先选择普通索引,除非业务需求明确需要唯一索引。基于《数据库实战45讲》内容解析。
摘要由CSDN通过智能技术生成

原理是先搞懂change buffer

首先要搞清楚change buffer

在修改一条数据的时候,例如update a set k = 1 where id =1.他不是立即去修改磁盘,而是将修改存到change buffer里。

在什么时候改呢?在查询id=1这条数据存在的数据页到内存中时,再修改。

Change  buffer还会在定期写入到磁盘或者客户端关闭的时候写入,这样就减轻了update操作的时间消耗。

这是前提,先说结论,普通索引会走change buffer,唯一索引不会走。因为唯一索引在修改时会判断插入的数据是否已存在数据库,所以他得查询,既然都将数据页查到内存中了,为啥不直接改了呢,对吧,所以他不会用change buffer。

二者如何选择

普通索引能节约修改数据库的时间。其实,这两个索引差不了太多时间。能用普通索引最好,普通索引优先,由于业务原因一定要使用唯一索引就使用吧。

谢谢大家,以上是基于林晓斌的《数据库实战45讲》转化为我自己的理解,如有问题请赐教。

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值