MySQL 8.0.29 开始,ALTER TABLE … ALGORITHM=INSTANT 支持删除某列。如下先添加两列,再删除两列: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 mysql>ALTERTABLEsbtest1ADDCOLUMNc4int(10),ADDCOLUMNc5int(10),ALGORITHM=INSTANT;QueryOK,0rows affected,2warnings(0.10sec)Records:0Duplicates:0Warnings:2...
即使没有显式的加上 ALGORITHM=INSTANT 选项,只要操作支持 instant 操作,就会默认使用该特性;如果是不支持的操作,显式加上 ALGORITHM=INSTANT 选项会失败并报错。 MySQL 8.0.28 开始, InnoDB 支持 ALTER TABLE ... RENAME COLUMN 操作使用 ALGORITHM=INSTANT。 MySQL 8.0.29 开始, InnoDB 支持 ALTER TABLE ... ...
可以看到,同样2千万行的表通过默认的ALGORITHM在任一位置添列耗时7分22秒,而ALGORITHM=INSTANT仅支持默认在最后一列即时添加列。 2、即时删除列 MySQL 8.0.29 开始,ALTER TABLE … ALGORITHM=INSTANT支持删除某列。如下先添加两列,再删除两列: mysql> ALTER TABLE sbtest1 ADD COLUMN c4 int(10) ,ADD COLUMN c...
可以看到,同样2千万行的表通过默认的ALGORITHM在任一位置添列耗时7分22秒,而ALGORITHM=INSTANT仅支持默认在最后一列即时添加列。 2、即时删除列 MySQL 8.0.29 开始,ALTER TABLE … ALGORITHM=INSTANT支持删除某列。如下先添加两列,再删除两列: mysql> ALTER TABLE sbtest1 ADD COLUMN c4int(10),ADD COLUMN c5in...
MySQL 8.0.29之前,在线 DDL 操作中即时添加列只能添加在表的最后一列,对于在某个具体列后面快速添加列很不方便,MySQL 8.0.29 扩展了对ALTER TABLE … ALGORITHM=INSTANT的支持:用户可以在表的任何位置即时添加列、即时删除列、添加列时评估行大小限制。
ALTERTABLEusersADDCOLUMNemailVARCHAR(255); 1. 2.3 步骤三:使用ALGORITHM INSTANT修改表结构 为了使用INSTANT算法,我们需要在ALTER TABLE语句中指定ALGORITHM=INSTANT。 ALTERTABLEusersALGORITHM=INSTANT,LOCK=NONE; 1. 在上述语句中,LOCK=NONE表示在执行ALTER TABLE操作期间不会对表进行加锁。
作者:张娜爱可生南区DBA组成员,负责MySQL、TiDB日常维护、故障处理。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小...
2. INSTANT语法 ALTERTABLEtbl_nameADD[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name],ALGORITHM=INSTANT;ALTERTABLEtbl_nameDROP[COLUMN]col_name,ALGORITHM=INSTANT; 注意: 未指定ALGORITHM情况下,所有的ADD/DROP COLUMNS会优先尝试INSTANT算法; 在单条ALTER TABLE语句中可以ADD/DROP COLUMNS多列。
alter table test add column column1 varchar(500) ,ALGORITHM=INSTANT; 在这个表上添加一个字段,结果如何 SESSION 1 SESSION 2 字段瞬间添加上了,但是存储过程在运行的途中直接报错,通过上表的实验证明 MYSQL 8 添加字段,不在是一个问题,PT 工具可以收手了。
ALTER table drop column a, ALGORITHM=INSTANT; 8.0.29 引入了新的alter 算法 INSTANT。 但是这个新功能目前很不稳定,导致的问题比较多; 而且通常都比较严重: 数据损坏,或者数据库无法启动等。 本文是分析其中的一个问题:对表进行 instant drop 后,进行 update ,之后数据库停机,而后数据库无法启动。