想象一下下表:
简单的单行表。
列名 = id int(11)
+---------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+---------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| tablename | 0 | PRIMARY | 1 | id | A | 1719077 | NULL | NULL | | BTREE | | |
| tablename | 0 | id | 1 | id | A | 1719077 | NULL | NULL | | BTREE | | |
+---------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
这是表名中显示索引的转储。
我认为这是我使用的 mysql 管理器(ems mysql 管理器)中的一个“bug”,当您创建带有主键的表时,它将创建一个 PRIMARY 索引(实际索引的名称是 PRIMARY)并且在创建表时自动创建主键列名索引。
可以删除其中一个吗?
谢谢!
最佳答案
绝对是的。主键可以很好地用作索引。
关于mysql - 主键列上是否有必要有一个 PRIMARY 索引 AND 列索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7494120/