唯一索引与普通索引

一、查询过程

  • 普通索引的查询过程是查找到满足条件的第一个记录后,需要查找下一个记录,直到不满足为止。
  • 唯一索引的查询过程是找到第一个满足条件的记录后,就会停止检索。

二、更新过程

change buffer

当更新数据页的时候,如果数据页在内存中,就直接更新,如果不在内存中,在不影响数据一致性的条件下,InnoDB会将更新操作缓存在change buffer中,在下次查询需要访问这个数据页的时候,将数据页读入内存。change buffer也会被写入到磁盘中,将change buffer中的操作作用到数据页上的过程叫做merge,除了访问这个数据页会触发mere以外,系统后台线程也会定期进行merge,在数据库正常关闭(shutdown)的过程中,也会执行merge操作。change buffer 用的是buffer pool里面的内存,可以通过参数innodb_change_buffer_max_size来动态设置。唯一索引的更细不能使用change buffer,因为其要进行唯一性判断,必须将数据页读入到内存,既然读入到了内存,就直接内存更新了。redo log主要节省的是随机写磁盘的IO消耗,而change buffer主要节省的是随机读磁盘的IO消耗。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值