MySQL中,主键是否自动创建索引?
在MySQL中,创建一张表时,我们通常都会设置主键,以保证表中每一个记录都有唯一的标识符。那么,当我们创建主键的时候,是否需要手动再创建索引呢?
实际上,在MySQL中,创建主键时,默认会自动为该主键列创建一个索引,并且该索引是唯一的。这样可以保证表中每一条记录都有一个唯一标识符,并且查询时可以通过主键快速定位到对应的记录。
举个例子,假设我们有一张学生表,其中包含学生的学号和姓名,我们可以将学号作为主键,代码如下:
CREATE TABLE `students` (
`s_id` int(11) NOT NULL AUTO_INCREMENT,
`s_name` varchar(30) NOT NULL,
PRIMARY KEY (`s_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
在上面的语句中,我们设置了主键为s_id,实际上这个主键列已经自动创建了一个索引,可以通过以下语句来查看:
SHOW INDEX FROM `students`;
可以看到,名为PRIMARY的索引就是我们所创建的主键索引。
阅读更多:MySQL 教程
总结
在MySQL中,当我们设置主键时,会自动为该主键列创建一个唯一索引。这个索引可以提供快速的查找和定位,可以加快查询和数据处理的速度。因此,在设计表结构时,设置主键是非常有必要的。
极客教程