Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql表中的重复索引_Mysql_Database_Indexing - Fatal编程技术网

MySql表中的重复索引

MySql表中的重复索引,mysql,database,indexing,Mysql,Database,Indexing,假设我在MySql数据库中有这样一个表: 宠物 小-[bigint] 名称-[varchar50] PetId列是我的主键。这意味着我有PetId列的主索引 假设我为同一个PetId列创建了另一个索引,就像截图中一样: MySql真的会为PetId_Uniq创建另一个索引吗?会有任何性能差异吗 我知道这样创建索引有点傻。但我在一个现有数据库中发现了这种情况,我很好奇这个小Uniq是否会在MySQL中作为一个单独的索引而结束,这将是一个开销,还是仅仅被忽略,因为它只是为了清除模式中的混乱。两个索

假设我在MySql数据库中有这样一个表:

宠物 小-[bigint] 名称-[varchar50]

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

假设我为同一个PetId列创建了另一个索引,就像截图中一样:

MySql真的会为PetId_Uniq创建另一个索引吗?会有任何性能差异吗


我知道这样创建索引有点傻。但我在一个现有数据库中发现了这种情况,我很好奇这个小Uniq是否会在MySQL中作为一个单独的索引而结束,这将是一个开销,还是仅仅被忽略,因为它只是为了清除模式中的混乱。

两个索引都会生成。但指出:

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


你为什么不试试看会发生什么?将索引添加到数据库不会对数据造成任何损害如何分析MySql实际创建和维护的索引?创建的索引在phpMyAdmin中可见,或通过表中的SHOW INDEX可见,通过explain可以看到使用了哪些。MySQL中的主键是唯一的键。插入/更新会对性能产生影响,因为它维护单独的索引。是否有任何工具可以在数据库中分析这些内容?