为什么要花一个多小时来更新这个表以添加一列?这张桌子有15排.它有两个索引和一个主键.ALTER TABLE查询已处于"复制到tmp TABLE"状态1小时15分钟.

ALTER TABLE `frugg`.`item_catalog_map` 
ADD COLUMN `conversion_url` TEXT NULL DEFAULT NULL

表:

mysql> describe item_catalog_map;
+------------------------+---------------+------+-----+---------+-------+
| Field                  | Type          | Null | Key | Default | Extra |
+------------------------+---------------+------+-----+---------+-------+
| catalog_unique_item_id | varchar(255)  | NO   | PRI | NULL    |       |
| catalog_id             | int(11)       | YES  | MUL | NULL    |       |
| item_id                | int(11)       | YES  | MUL | NULL    |       |
| price                  | decimal(10,2) | YES  |     | 0.00    |       |
+------------------------+---------------+------+-----+---------+-------+

mysql> show index from item_catalog_map;
+------------------+------------+----------------------+--------------+------------------------+-----------+-------------+----------+--------+------+------------+---------+
| Table            | Non_unique | Key_name             | Seq_in_index | Column_name            | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+------------------+------------+----------------------+--------------+------------------------+-----------+-------------+----------+--------+------+------------+---------+
| item_catalog_map |          0 | PRIMARY              |            1 | catalog_unique_item_id | A         |    15485115 |     NULL | NULL   |      | BTREE      |         |
| item_catalog_map |          1 | IDX_ACD6184FCC3C66FC |            1 | catalog_id             | A         |          18 |     NULL | NULL   | YES  | BTREE      |         |
| item_catalog_map |          1 | IDX_ACD6184F126F525E |            1 | item_id                | A         |    15485115 |     NULL | NULL   | YES  | BTREE      |         |
+------------------+------------+----------------------+--------------+------------------------+-----------+-------------+----------+--------+------+------------+---------+

推荐答案

MySQL的ALTER TABLE性能对于非常大的表来说可能会成为一个问题.MySQL执行

无论如何,如果您需要继续使用alter table,以下资源可能会帮助您:

Mysql相关问答推荐

如何使RST(*)在巨大的数据集上快速执行?

根据键的数量,SQL Json字段分为行

为什么IN子句中有GROUP BY会导致查询变得不可执行?

MySQL生成的整型计算可以为空吗?

从 MySQL WordPress Select 最后一行

如何解码存储在带有type*:前缀的base64中的数据?

使用索引进行查询优化

如何在 MySQL 中查找重复值和更新值

SQL 根据多行值获取记录

巨大的未分区 MySQL 表问题

将 wordpress 自定义字段转换为单个数组

Mysql 相等性反对 false 或 true

我在查询中没有得到正确的结果

MYSQL LOAD DATA INFILE 语句适用于工作台,但不适用于 python

是否可以从 .SQL 文件中计算表中的行数?

这是将表单数据插入 MySQL 数据库的安全方法吗?

我可以在单个 Amazon RDS 实例上创建多少个数据库

MySQL:ALTER IGNORE TABLE 给出违反完整性约束

MySQL获取两个值之间的随机值

如何通过一个语句描述数据库中的所有表?