主键是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录.;使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。当然索引也有好处就是查询速度快,它利还是大于弊的所以请慎重使用索引。 
比如:一个学生表(t_stu )有1000条数据,给它id列建个主键和索引,

你想查询id=1000;的这条信息,如果没有索引,它就一条一条的比对查找,系统运行1000次才找到,要是创建了索引,你查询id=1000的这条信息,系统只运行一次就找到了。

1. 
主键一定是唯一性索引,唯一性索引并不一定就是主键. 
所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数 据更新、删除的时 候不会出现张冠李戴的错误。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。数据库在设计时,主键起到了很重要的作用。 
主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。 
2. 
一个表中可以有多个唯一性索引,但只能有一个主键. 
3. 
主键列不允许空值,而唯一性索引列允许空值.

关于索引更加详细的介绍见连接


PS做牛客的题不明白强制索引是什么意思

索引 主键 索引和主键有什么区别_数据库表

索引 主键 索引和主键有什么区别_索引 主键_02

索引 主键 索引和主键有什么区别_主键_03