InnoDB;
insert into t(id, name, k) values
(1, 'Java', 100),
(2, 'Python', 200),
(3, 'Go', 300),
(5, 'MySQL...', 500),
(6, 'Spark', 600)
我们使用上节的SQL进行分析普通索引和唯一索引的区别。...唯一索引和普通索引的插入
假设我们在表中需要插入一条新的数据(4, 'Flink', 400),InnoDB对于唯一索引和普通索引的处理有些区别:
假设记录要更新的目标页在内存中,处理流程如下:
如果是唯一索引...,找到300和500之间的位置,判断没有冲突,插入该值,语句执行结束
如果是普通索引,找到300和500之间的位置,插入该值,语句执行结束
假设记录要更新的目标页不在内存中,处理流程如下:
如果是唯一索引...唯一索引和普通索引
唯一索引和普通索引在查询性能上基本没有差别,但在更新上普通索引会快于唯一索引。所以在可以选择普通索引的前提下尽可能选择普通索引。