前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【BUG重现】让MySQL 8.0 Instant DDL算法在第65次时失效

【BUG重现】让MySQL 8.0 Instant DDL算法在第65次时失效

原创
作者头像
贺春旸的技术博客
发布2024-04-25 15:53:28
1230
发布2024-04-25 15:53:28
举报
文章被收录于专栏:DBA 平台和工具DBA 平台和工具

创建一个存储过程:对sbtest1表增加字段c1,然后再删除,反复循环64次操作。

当第65次时,再次执行增加字段c1, Instant DDL算法失效,无法秒级增加字段。

【BUG重现】

1) 存储过程创建

代码语言:sql
复制
DELIMITER //

CREATE PROCEDURE Execute_Alterations()
BEGIN
    DECLARE i INT DEFAULT 1;
    
    WHILE i <= 32 DO
        SET @sql1 = 'ALTER TABLE sbtest1 ADD c1 INT, ALGORITHM=INSTANT;';
        SET @sql2 = 'ALTER TABLE sbtest1 DROP c1, ALGORITHM=INSTANT;';
        
        PREPARE stmt1 FROM @sql1;
        EXECUTE stmt1;
        DEALLOCATE PREPARE stmt1;
        
        PREPARE stmt2 FROM @sql2;
        EXECUTE stmt2;
        DEALLOCATE PREPARE stmt2;
        
        SET i = i + 1;
    END WHILE;
END//

DELIMITER ;

2) 执行存储过程

代码语言:sql
复制
CALL Execute_Alterations();

3) 查看sbtest1表DDL执行次数

代码语言:sql
复制
select name,TOTAL_ROW_VERSIONS FROM INFORMATION_SCHEMA.INNODB_TABLES 
where NAME like '%sbtest1%';

到这里,你会看到64.

4) 此时,你再执行DDL,增加字段c1,会报错提示超出最大次数限制,如图所示:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【BUG重现】
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com