草庐IT

mysql - "The indexes PRIMARY and id seem to be equal and one of them could possibly be removed."是什么意思?

coder 2023-06-12 原文

这是什么意思,我该如何解决?

最佳答案

您在表的同一字段 (id) 上有两个单独的索引。其中之一是通过将 id 设置为 PRIMARY KEY 来暗示的,​​另一个可能是您明确创建的。只需要其中一个 - 由于额外的索引更新,同时拥有它们可能会导致性能下降。

只是drop其中一个解决了这个问题。

在表的列(或字段,如果您愿意)上具有 PRIMARY KEYUNIQUE 约束实质上意味着对于插入的每一行,该行的值列应该是唯一的,因此它不应该已经存在于表中。天真的方法是在插入之前读取所有现有行,但是一旦插入大量行,这会使数据库非常变慢。

为了处理这个问题,大多数(所有?)体面的数据库引擎将隐式为这些字段创建索引,以便它们可以快速检测表中是否已经存在一个值,而无需扫描它的所有行。

因此,在声明为PRIMARY KEYUNIQUE的字段上手动创建索引不仅冗余,而且还可能因重复工作而导致性能损失需要维护索引。

关于mysql - "The indexes PRIMARY and id seem to be equal and one of them could possibly be removed."是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5506417/

有关mysql - "The indexes PRIMARY and id seem to be equal and one of them could possibly be removed."是什么意思?的更多相关文章

随机推荐