首页 > 其他分享 >Online DDL

Online DDL

时间:2024-09-29 14:48:49浏览次数:5  
标签:MDL DDL INPLACE Online 操作 COPY

MySQL在线DDL特性提供了即时支持instant 、copy方式,还有原表in-place方式。有些过程中也允许并发DML。

语法:

ALTER TABLE tbl_name ,
alter_option: {...},
ALGORITHM [=] {DEFAULT | INSTANT | INPLACE | COPY}
LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}

为了避免在执行ALTER TABLE操作时表可读或不可写,可以在ALTER TABLE语句中指定一个子句,如果请求是并发级别且不可用,则操作立即停止。

 

常见问题:

  • 支持 INPLACE 算法的 DDL 不一定是 Online

从概念上来说,INPLACE 和 Online 是两个不同维度的事情。COPY 和 INPLACE 指的是 DDL 内部的执行逻辑,可以简单的理解成:COPY 是在 Server 层的操作,INPLACE 是在 InnoDB 层的操作。从是否允许并发DML来看,有两个基本结论,COPY 算法执行的 DDL 肯定不是 Online 的,INPLACE 算法执行的 DDL 不一定是 Online 的。

  • Online DDL有可能会锁表

MDL 锁是在 Server 层加的,表锁,行锁,GAP 锁在 InnoDB 层加的。所有的操作(不管是 DDL 还是 DML 还是查询语句)都需要先拿 Server 层的 MDL 锁,然后再去拿 InnoDB 层的某个需要的锁。一个 DDL 的基本过程是首先在开始进行 DDL 时,需要拿到对应表的 MDL X 锁,然后进行一系列的准备工作,然后将 MDL X 锁降级为 MDL S 锁,进行真正的 DDL 操作,最后再次将 MDL S 锁升级为 MDL X 锁,完成 DDL 操作,释放 MDL 锁,所以在真正执行 DDL 操作期间,确实是不会“锁表”的,但是如果在第一阶段拿 MDL X 锁时无法正常获取,那就可能真的会“锁表了”

标签:MDL,DDL,INPLACE,Online,操作,COPY
From: https://www.cnblogs.com/complexlong/p/18439749

相关文章

  • 【大数据入门 | Hive】DDL数据定义语言(表TABLE)
    1.创建表1.1普通建表:完整语法:CREATE[TEMPORARY][EXTERNAL]TABLE[IFNOTEXISTS][db_name.]table_name   [(col_namedata_type[COMMENTcol_comment],...)][COMMENTtable_comment][PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)][CLUST......
  • mysql 0928 DDL表操作
    `ALTERTABLEempaddnicknameVARCHAR(20)COMMENT'昵称';--添加字段nicknameDESCTABLEemp;--查看表ALTERTABLEempMODIFYnicknamevarchar(10);--修改数据类型ALTERTABLEempchangenicknameusernameVARCHAR(30);--修改字段nickname为usernameALT......
  • 安装paddleocr失败,重新安装
    删除冲突文件rm-f/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/paddle/base/libpaddle.so彻底卸载paddlepaddlepip3uninstallpaddlepaddlepip3uninstallpaddlepaddle-gpu清除pip的缓存pip3cachepurge使用--verbose......
  • DDL 超时,应该如何解决 | OceanBase 用户问题集萃
    问题背景在OceanBase的社区问答里常看到有用户发帖提出DDL超时的问题, 如“执行DDL超时,为何调大超时时间不生效?”。但很多帖子的回答都没有完美解决。因此,这里把相关的解决思路在这里分享给大家。帖子里对这类问题的描述都很简单:就是执行了一条DDL,然后超时了,再然后把ob_......
  • The 2024 ICPC Asia East Continent Online Contest (II)
    C.PrefixofSuffixes比赛的时候调E,调的心态爆炸,最后一点时间写C,又没冲出来题目大意给三个数组\(\{S_n\},\{a_n\},\{b_n\}\),对于每个\(i\)求\(\sum_{j=1}^i\sum_{k=j}^{j+z_j-1}A_kB_j\),其中\(z_i\)表示\(S_{[1,i]}\)和\(S_{[j,i]}\)的最长公共前缀的长度,\(S\)数组强制在线\[......
  • postman关联、fiddler断点
    fiddler可以做什么?抓包、弱网、断点一、关联接口:定义:拿上一个接口的返回参数,做下一个接口入参省份接口:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince城市接口:post http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/get......
  • The 2024 ICPC Asia EC Regionals Online Contest (II)
    A-GamblingonChoosingRegionals题意\(k\)场比赛,每场比赛每个大学至多\(c_i\)个队;总\(n\)个队伍,每队有分数与所属大学两个属性,每只队伍至多参加\(2\)场比赛。求各个队在最坏情况下的最优排名。思路最坏情况就是你打哪场,强队都去哪场,就选\(c_i\)小的场次,能让排名更靠......
  • The 2024 ICPC Asia East Continent Online Contest (II)
    Preface被徐神带飞咯,全程睡觉看队友卡卡过题,最变态的是K我上去乱写了个假做法就下机睡觉了,后面徐神反手就改了个正解出来这场主要是周五晚上无来由地发烧了,第二天比赛的时候头痛的一批,几乎没法集中精力想代码和写题但没想到这场最后打的还挺好,开局1h不到就把6个签过了,然......
  • The 2024 ICPC Asia East Continent Online Contest (I)
    Preface打的一坨,直接被Div.2学弟吊起来打这场主要是中期的Easy~mid写的太慢,导致中后期题没时间写同时封榜后的决策也有点问题,没有全队All-in一个题而是让徐神去写当时1/27的K,虽然可能徐神来想H我们也出不来但感觉还是跟榜适合我们队的level赛后发现H反着填右括......
  • docker部署paddleocr过程中遇到的问题
    坑1:尝试了下面csdn博客中的解决方案,但是不太行,后来发现是paddlepaddle-gpu的版本问题,版本改对后就OK了https://blog.csdn.net/weixin_43021830/article/details/128243800坑2:困扰了一周了,还是卡住了,目前尝试解决的两个思路1、将paddleocr模块添加到python解释器的搜索路径......