决定使用 KEY 还是 UNIQUE KEY

Decision to use KEY or UNIQUE KEY

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

如果我们不必依赖数据库来获得唯一性并且我们仍然希望使用列进行快速查找 'b' 您是否建议使用非唯一索引 (KEY) 而不是唯一索引(唯一键)?

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

我不明白这个说法:"If we don't have to rely on the DB for unique-ness"。 table 中的 UNIQUE 属性是对构成密钥的 column/columns 的描述。数据库的功能之一就是维护数据的完整性,所以让数据库做它设计的事情吧。

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