杜老师说技术:MySQL主键和唯一索引区别

两者区别

主键是种约束,唯一索引是种索引,两者在本质上是不同的。

主键创建后一定包含一个唯一性索引,唯一性索引并不一定是主键。

唯一性索引列允许空值,而主键列不允许为空值。

主键列创建时,已经默认为非空值加唯一索引了。

主键可被其他表引用为外键,唯一索引不能。

一个表最多能创建一个主键,但可创建多个唯一索引。

主键和唯一索引都可有多列。

主键适合那些不容易更改的唯一标识,如自动递增列、身份证等。

在RBO模式,主键的执行计划优先级高于唯一索引。两者都可以提高查询的速度。

索引是一种特殊的文件,它们包含对数据表里所有记录的引用指针。

总体来说

主键相当于一本书籍的页码,索引相当于书籍的目录。

其实主键和索引都是键,不过主键是逻辑键,索引是物理键,意思是主键不实际存在,而索引实际存在在数据库中,主键一般都要创建,主要用来避免一张表中有相同的记录,索引一般可以不建,但如果需要对该表进行查询操作,则最好建,这样可以加快检索速度。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注