主页 > InnoDB存储引擎 > Online DDL影响数据库的性能和并发

Online DDL影响数据库的性能和并发

小牛教程 InnoDB存储引擎 2021年06月17日
  表结构变更:添加字段、删除字段、修改字段类型、修改字符集、添加索引、删除索引
  
  5.6版本之前:
  
  ​    执行表结构变更,由于不支持online ddl,对操作的表加表锁,阻塞dml语句,性能和并发就会非常差;
  
  5.6版本及5.7、8.0:
  
  ​    执行表结构变更,5.6版本及5.7、8.0支持online ddl,解决对表加锁的问题,可以并行执行dml语句,性能和并发能力得到提升;
  
  总结:online ddl 可以并行执行ddl语句和dml语句
  
  ①online ddl语法:
  
  ​    alter table t add name varchar(10) not null, lock=default, algorithm=default;
  
  ​    lock子句:用于设置ddl语句操作时加锁的方式
  
  ​    lock=default 默认的,自动的选择加锁的模式
  
  ​    lock=none 不加锁,并发性能最高
  
  ​    lock=shared 加共享锁,阻塞dml语句,可以并行执行select
  
  ​    lock=exclusive 加排他锁,阻塞dml、select
  
  ​    algorithm子句:
  
  ​    algorithm=default 默认的,old_alter_table | OFF ,不会拷贝数据
  
  ​    algorithm=inplace 不会拷贝数据,操作元数据,性能最高
  
  ​    algorithm=copy
  
  ②参数:innodb_online_alter_log_max_size=128m,用于存放在执行ddl语句期间,如有dml语句操作,就会放到该日志文件中
  
  ③online ddl问题:造成主从复制延迟
广告位
标签: Online DDL