MySql表中的重复索引

时间:2018-02-05 18:15:25

标签: mysql database indexing

假设我在MySql数据库中有一个表,如下所示:

Pet PetId - [bigint] Name - [varchar(50)]

PetId列是我的主键。这意味着我有PetId列的PRIMARY索引。

并假设我已经为同一个PetId列创建了另一个索引作为UNIQUE,就像在screenshoot中一样: enter image description here

MySql是否会为PetId_Uniq创建另一个索引并且会有任何性能差异吗?

我知道创建这样的索引有点愚蠢。但是我在现有的数据库中发现了这种情况,我很好奇,如果这个PetId_Uniq最终会成为MySql中的一个单独的索引(这将是一个开销),或者只会被忽略(所以它只是关于清除模式中的混乱)。

1 个答案:

答案 0 :(得分:1)

生成两个索引。但8.3.1 How MySQL Uses Indexes表示:

  

如果在多个索引之间进行选择,MySQL通常会使用找到最小行数(最具选择性的索引)的索引。