唯一索引or普通索引?阿里强制唯一索引?

唯一索引or普通索引?阿里强制唯一索引?

1、 唯一索引和普通索引区别

先谈谈两者在查询操作上的区别,假设我们对一张User表建立mobile字段的索引。

1. 查询操作

若执行查询语句select * from user where mobile=123456789;

唯一索引由于具有唯一性,当查询时将唯一字段作为条件时,查询到一个记录后将立即返回。

普通索引由于不保证唯一性,直到遇见不符合条件的才返回。

但实际上普通索引与唯一索引在性能上是微乎其微的,因为在查询语句的主要时间是花在了索引磁盘块的读取和数据页的读取上,两者读取磁盘块的个数基本一致。基本一致就是指特殊情况普通索引可能会多一个IO,即该记录正好在数据页的最后一个,那么还会读取下一个数据页(概率极低)。

所以得出的结论是唯一索引跟普通索引在查询上性能相当。(PS:该结论先打个问号???



2.更新操作

在聊更新操作之前先谈谈Change Buffer。MySQL的数据数据存储是包含两个部分的:磁盘和内存。在内存中有一个内存缓冲池,缓存数据页和索引页以提高读效率,Change Buffer以提高写效率

Change Buffer用于当索引页不在缓冲池中时,对数据页进行写操作时,并不会立即将磁盘加载到缓冲池然后写入数据,而是仅仅记录缓冲变更信息&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值