首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL 8.0 Atomic DDL

    元数据系统表有了InnoDB事务系统的支持,MySQL 8.0 将之前版本中多个事务完成的一个DDL操作变成一个 DDL Trx 事务去完成(也有其他辅助事务,但不影响DDL Trx 主导的DDL的原子性...DDL Trx 事务提交则 DDL 完成,如果回滚则 DDL 执行的所有操作都可以回滚,包括:元数据表回滚和文件操作回滚。也就是原子 DDL 需要元数据操作的原子性和文件(物理)操作的原子性。...因为这些日志需要在DDL事务提交的时候全部删除,不能够保留到COMMIT之后,因为成功提交之后是不能删除这些文件和索引树的,那么这里DDL就用了DDL Trx之外的事务做 ddl log 日志的insert...操作,该insert事务立刻提交,DDL trx 读取这个 ddl log record并将其标记删除,如果DDL Trx 成功Commit了,那么删除生效,ddl log 被清理。...] DDL log post ddl : end for thread id : 8 如上所述,Drop Table 操作 DDL Log 记录需要在 DDL Trx Commit成功后需要删除的物理操作

    1.4K40

    MySQL5.6的Online DDL不是真正的Online DDL

    Online DDL是从mysql5.6版本后引入的新功能,可以实现在线DDL操作不锁表。但是MySQL5.6的Online DDL不是真正的Online DDL,针对部分操作还是有局限性。...5.6之前的DDL处理方式: 1、创建临时表 2、将原表加S锁(只能读,不能DML) 3、将原表数据导入临时表 3、删除原表 4、把临时表重命名成新表 这种情况会对表加一个S锁,其他用户只能访问,不能执行...5.6之后的DDL处理方式: innodb_online_alter_log_max_size参数,默认为128M,超出范围会报错,所以处理大表的情况下需要调整这个值。...只有以下几类DDL操作不可以通过“Online”的方式进行:会影响其他DML操作 1、新加字符编码不同 2、更改列数据类型 3、删除主键 4、添加全文索引 所以5.6的Online DDL并不是真正的Online...DDL,如果想保证尽量不锁表,可以使用oak-online-alter-table和pt-online-schema-change等工具。

    2.1K60

    数据定义语言 - DDL

    数据定义语言 - DDL 本文关键字:数据库、数据定义语言、DDL、数据库对象 之前我们已经了解了SQL语言的分类,可以划分为:DDL(数据定义语言)、DML(数据操纵语言)、DQL(数据查询语言)、...DCL(数据控制语言)、TPL(事务处理语言)、CCL(指针控制语言),本文将介绍DDL。...一、DDL介绍 DDL的全称是Data Definition Language,即:数据定义语言。在使用数据库操作数据时,一定要通过已经存在的结构,我们称之为数据库中的对象,如最常见的数据表。...那么DDL的作用就是在结构上去管理和调整这些数据库对象,通常不会关心某个具体的数据,比如在删除某一个结构时,其中的数据也会被一同删除。...二、常见数据库对象 在学习DDL之前,有必要先来了解一下常见的数据库对象,有必要说明的是:某些数据库会弱化甚至于完全去掉某些数据库对象,使用其他的方式来代替相应的功能,不能够一概而论,所以本文只会演示最通用的数据库对象

    1.5K21

    TXSQL Parallel DDL功能建设

    由于DDL操作涉及到数据库表结构、表数据的重构,尤其是在云数据库场景下,表的数据量急速上涨,DDL操作的效率受到了极大的挑战,一条慢速的DDL操作甚至需要花费几天的时间来完成,在这期间DDL操作持续持有锁...按照MySQL实现不同DDL操作使用的算法,DDL操作可以分为下列三种: Inplace DDL、Copy DDL和Instant DDL。...我们耳熟能详的Online DDL是根据DDL是否阻塞DML来区分的,在DDL操作执行期间不阻塞DML操作的,则认为该DDL操作是Online的。...:Copy DDL一定不是Online DDL, Inplace DDL不一定是Online DDL。...TXSQL分别为这两种算法的DDL操作实现了并行化,这样一来,用户使用Instant DDL和Parallel DDL就能够使得绝大多数DDL操作的效率得到优化,大大缩短了用户DDL操作的执行时间。

    90710
    领券