mysql - 我如何使用 Percona 的 `CREATE INDEX` 工具执行 `pt-online-schema-change`?

标签 mysql sql percona

如何使用 Percona 的 pt-online-schema-change 工具执行 CREATE INDEX?我想做类似的事情:

使用 BTREE 在 table_name (col_1, col_2, ...) 上创建唯一索引 idx_name

根据documentation ,我必须使用 --alter 参数,然后使用适当的 ALTER TABLE 语句,减去前面的 ALTER TABLE table_name 短语。但是,CREATE INDEX 不是以 ALTER TABLE 开头的,表名嵌入在 CREATE INDEX 语句中。那么我该如何前进?

最佳答案

根据documentation对于 MySQL 创建索引:

CREATE INDEX is mapped to an ALTER TABLE statement to create indexes.

因此,您可以将我的示例转换为 SQL 语句:

ALTER TABLE table_name ADD UNIQUE INDEX idx_name (col_1, col_2, ...) 使用 BTREE

导致 Percona 架构修改语句:

使用 BTREE 添加唯一索引 idx_name (col_1, col_2, ...)

关于mysql - 我如何使用 Percona 的 `CREATE INDEX` 工具执行 `pt-online-schema-change`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26167066/

相关文章:

MySQL 使用 IN() 子查询创建更长的执行时间

sqlite3 - MAX() 函数不返回列的最大值

sql - 事务回滚时更新统计信息的行为

mysql - pt-archiver 卡在最后剩余的行上

mysql - percona mysql 5.5.25a 服务器复制速度非常慢

mysql - MariaDB vs Drizzle vs Percona Server vs MySQL

mysql 复合索引也索引单个字段吗?

javascript - 定义模型时,我应该使用 Sequelize 还是 DataType?

mysql - 使用 MySQL 计算曾经在线的大多数用户

mysql - 如果表 C 中的列 A 和列 B 的组合不存在,则在表 3 中插入​​新行