普通索引和唯一索引如何选择
如果业务要求某个字段唯一,但是代码不能完全保证写入唯一值,则添加唯一索引,让这个字段唯一,该字段新增重复数据时,将报类似如下的错:
ERROR 1062 (23000): Duplicate entry '1' for key 'f1'
如果代码确定某个字段不会有重复的数据写入,则可以选择添加普通索引。 因为普通索引可以使用 Change Buffer,并且出现死锁的概率比唯一索引低。
总结:
- 有普通索引的字段可以写入重复的值,而有唯一索引的字段不可以写入重复的值。
- 数据修改时,普通索引优于唯一索引,因为普通索引可以用 Change Buffer,并且 RR 隔离级别下,出现死锁的概率比唯一索引低。
- 查询数据时,两者性能差别不大。
参考学习自《一线数据库工程师带你深入理解 MySQL》
网友评论