最近和一个同事聊天,他问了我一个小问题,主键索引和唯一索引有什么区别? 当时一听,脑袋有点晕了,这个天天用的东西,有什么好说的呢?
后面冷静的想了想,天天用的都说不出个什么原因了,真是有点羞愧了。盲羊补牢,先补上再说了。
主键和唯一性索引区别如下:
1、主键是一种特殊的唯一性索引,索引不一定是主键;
2、主键只能有一个,唯一性索引可以设置多个;
3、主键不能为空,唯一性索引可以为空;
4、主键可以作为其他表的外键,唯一性索引不能;
5、主键是InnoDB表记录的”逻辑地址“,所以InnoDB要求表必须有主键,MyISAM可以没有。
相同点:
1、作为查询条件都可以加速查询结果;
2、数据变动后索引都需要重建,一定程度上回影响到数据库的性能;