我只想知道我有一个包含超过 1000 条记录的表,并且还有一些索引。我想从表中删除数据。如果我使用删除或截断,索引会发生什么情况。换句话说,如果我们使用任何这些语句,索引也会被删除。 谢谢
最佳答案
当您更改或删除表中的数据时,表结构不会受到影响。
要更改表结构本身,您必须完全删除表或使用特定命令(例如添加索引或列等)更改它。
索引是一种通过构建优化的数据映射来更快地获取记录的机制。如果记录发生更改,则必须重新生成 map ,或者您可以说进行更正。
因此,如果您删除记录,那么表的索引将不再正确,因为它与数据不匹配。因此,每次您更改表中的某些内容时,索引都会自动调整。
这就是索引使选择速度非常快的原因。但如果添加很多,则插入、更新和删除会变慢,因为这些操作需要更新索引。
但是索引定义没有改变 - 索引包含的数据发生了变化。和 table 上的一模一样。通过更改表的数据 - 您不会更改表的结构。
关于mysql - 索引和删除语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37321217/