决定使用KEY或UNIQUE KEY

时间:2015-06-13 11:00:29

标签: mysql indexing unique-index

我知道UNIQUE KEY是一个唯一索引,KEY是一个非唯一索引。我已经读过,在唯一索引的情况下,插入数据可能会导致一些IO。

如果我们不必依赖数据库来获取独特性,我们仍然希望快速查找使用列' b'你会建议使用非唯一索引(KEY)而不是唯一索引(UNIQUE KEY)吗?

1 个答案:

答案 0 :(得分:2)

唯一索引和非唯一索引都会导致INSERTDELETEUPDATE语句的I / O操作。索引开销量应该几乎相同。不同之处在于,在正常使用情况下,唯一索引可能会导致INSERTUPDATE失败(当然,操作可能由于其他原因而失败,例如磁盘已满,但这是不常见的情况)。

我不明白这句话:“如果我们不必依赖DB来获取独特性”。表中的UNIQUE属性是组成键的列/列的描述。数据库的一个功能是维护数据的完整性,因此让数据库按照它的设计行事。

至于性能,我认为唯一索引和非唯一索引之间没有显着差异。对于某些操作,唯一索引可能稍微更优化,因为编译器知道单个查找只返回一行。索引查找和返回一行的索引扫描之间的差异在实践中可能非常小。