gpt4 book ai didi

mysql - 澄清 MySQL 5.6 使用 IN PLACE alter table 添加/删除相同的索引

转载 作者:行者123 更新时间:2023-11-30 22:53:17 27 4
gpt4 key购买 nike

来自文档:

An ALTER TABLE statement that contains DROP INDEX and ADD INDEX clauses that both name the same index uses a table copy, not Fast Index Creation.

这对我来说有点不清楚。它是在谈论索引的名称吗?有人可以举一个 MySQL 求助于表副本的查询示例吗?

最佳答案

的确,这句话听起来像是关于:

  • 一个(一个,单个)ALTER TABLE 语句
  • 包含(两者)一个 DROP INDEX 和一个 ADD INDEX 子句
  • 并且两个子句都命名相同的索引

并指出这样的语句使用表副本,而不是快速索引创建。

这样的语句是:

ALTER TABLE MyTable
DROP INDEX MyIndex
ADD INDEX MyIndex(MyColumn);

文档并不清楚这背后的原因,但我认为数据库希望先创建一个索引然后删除另一个索引,因此语句本身可以更容易地成为原子语句。 (创建索引可能会失败。)如果索引名称本身也在存储中使用,则先创建然后删除的顺序会产生冲突。

毕竟,快速创建索引是一项相对较新的功能,因此随着时间的推移,他们可能会改进这一点。

关于mysql - 澄清 MySQL 5.6 使用 IN PLACE alter table 添加/删除相同的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27430682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com