MySQL 普通索引和唯一索引
问题引入
假设在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似的 SQL:
select name from user where id_card = 'xxx';
所以,我们一定会考虑在 id_card
字段上建索引。
由于身份证号字段比较大,所以它不适合当做主键。那么 id_card
字段是要创建唯一索引还是普通索引呢?此处假设业务代码已经保证了不会写入重复的身份证号,这两个选择在逻辑上都是正确的。…