假设我在MySql数据库中有一个表,如下所示:
Pet
PetId - [bigint]
Name - [varchar(50)]
PetId
列是我的主键。这意味着我有PetId列的PRIMARY索引。
并假设我已经为同一个PetId
列创建了另一个索引作为UNIQUE,就像在screenshoot中一样:
MySql是否会为PetId_Uniq
创建另一个索引并且会有任何性能差异吗?
我知道创建这样的索引有点愚蠢。但是我在现有的数据库中发现了这种情况,我很好奇,如果这个PetId_Uniq
最终会成为MySql中的一个单独的索引(这将是一个开销),或者只会被忽略(所以它只是关于清除模式中的混乱)。
答案 0 :(得分:1)
生成两个索引。但8.3.1 How MySQL Uses Indexes表示:
如果在多个索引之间进行选择,MySQL通常会使用找到最小行数(最具选择性的索引)的索引。