简介
主键:唯一标识一条记录,不能有重复的,不允许为空。
外键:表的外键是另一个表的主键,外键可以有重复的,可以是空值。
索引:高效查找数据记录的一种数据结构。该字段没有重复值,但可以有一个空值。
区别
1、一个表只有一个主键,但可以有多个索引
2、使用主键会自动创建索引(唯一索引),也可以在非主键上创建索引。
索引失效
1、有or必全有索引;
2、复合索引未用左列字段;
3、like以%开头;
4、需要类型转换;
5、where中索引列有运算;
6、where中索引列使用了函数;
7、如果mysql觉得全表扫描更快时(数据少);