标签:初始 isp 需要 ble 结构 基本 图片 插入 初始化
ddl包含了copy和inplace方式,对于不支持online的ddl操作采用copy方式。对于copy方式,copy过程中全程锁表,不允许写(rename阶段会禁止读写),比如修改表字段的类型,包括修改长度,对于inplace方式,mysql内部以是否修改记录格式为基准也分为两类,一类需要重建表(重新组织记录,重建过程中会建立临时ibd文件),比如添加索引、添加/删除列、修改列NULL/NOT NULL属性等;另外一类是只需要修改表的元数据,比如删除索引、修改列名、修改列默认值、修改列自增值等。MySQL将这两类方式分别称为rebuild方式和no-rebuild方式。
online ddl主要包括3个阶段,prepare阶段,ddl执行阶段,commit阶段,rebuild方式比no-rebuild方式实质多了一个ddl执行阶段,prepare阶段和commit阶段类似。
此阶段主要是innodb引擎做一些校验,分配空间,初始化等操作,时间不长,对于用户感觉不出来禁止读写
对于norebuid模式(如删除索引),InnoDB二级索引只需要更新内部视图,并标记这个索引的空间可用,去掉数据库元数据上该索引的定义即可,都是在原表上操作,不需要重建与copy数据,所以速度非常快,基本可以忽略阻塞读写的时间
虽然画了上面的图,但是里面的细节还是有很多的不懂,不明白,还是只能知道大概的流程,对于每一个点都是一个很深的知识点,commit阶段也还没有整理,待补
标签:初始 isp 需要 ble 结构 基本 图片 插入 初始化
原文地址:https://www.cnblogs.com/muzhao/p/9882117.html