MariaDB10.3 增补AliSQL补丁---安全执行Online DDL
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,Online DDL从名字上看很容易误导新手,以为不论什么情况,修改表结构都不会锁表,理想很丰满,现实很骨感,注意这个坑!有以下两种情况执行DDL操作会锁表的,Waiting for table me
千家信息网最后更新 2025年02月02日MariaDB10.3 增补AliSQL补丁---安全执行Online DDL
Online DDL从名字上看很容易误导新手,以为不论什么情况,修改表结构都不会锁表,理想很丰满,现实很骨感,注意这个坑!
有以下两种情况执行DDL操作会锁表的,Waiting for table metadata lock(元数据表锁)
1、增加、删除字段或索引不会锁全表,删除主键、更改字段属性会锁全表,见下图所示:
2、在添加字段alter table表时,对该表的增、删、改、查均不会锁表。而在这之前,该表有被访问时,需要等其执行完毕后,才可以执行alter table,例如在会话一,故意执行一条大结果的查询,然后在会话二执行增加字段age,此时还会出现表锁,如下图所示:
针对第二种情况,MariaDB10.3 增补AliSQL补丁-DDL FAST FAIL,让其DDL操作快速失败。
语法为:
ALTER TABLE tbl_name [WAIT n|NOWAIT] ...CREATE ... INDEX ON tbl_name (index_col_name, ...) [WAIT n|NOWAIT] ...DROP INDEX ... [WAIT n|NOWAIT]DROP TABLE tbl_name [WAIT n|NOWAIT] ...LOCK TABLE ... [WAIT n|NOWAIT]OPTIMIZE TABLE tbl_name [WAIT n|NOWAIT]RENAME TABLE tbl_name [WAIT n|NOWAIT] ...SELECT ... FOR UPDATE [WAIT n|NOWAIT]SELECT ... LOCK IN SHARE MODE [WAIT n|NOWAIT]TRUNCATE TABLE tbl_name [WAIT n|NOWAIT]
例:
如果线上有某个慢SQL对该表进行操作,可以使用WAIT n(以秒为单位设置等待)或NOWAIT在语句中显式设置锁等待超时,在这种情况下,如果无法获取锁,语句将立即失败。 WAIT 0相当于NOWAIT。
参考:https://jira.mariadb.org/browse/MDEV-11388
字段
情况
语句
补丁
丰满
下图
单位
名字
属性
数据
数据表
新手
现实
理想
索引
结构
结果
语法
参考
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术助力英语教学
烽火通信应届生软件开发工资
湖南供应链中台数据库
网络安全主题网评征文
青州天气预报软件开发
汽车网络技术包括哪些总线
数据库代码注释
万方数据库的几种常用检索途径
网络安全工作坚持谁使用谁负责
服务器如何查内存条型号
数据库底层计算
软件开发工作周记27周
服务器技术支持是做什么的
网络安全和德育的宣传语
华为云服务器 试用
数据库运维工程师前景
做网络技术员要求
湖北省网络安全领导小组
QT数据库数据导出xml
西安软件开发培训多久
网络技术怎样分配地址
视频监控网络安全检查总结
河南省胖兔互联网科技
网络安全是传统安全问题嘛
中学网络安全班会稿
当代科技与互联网
字节跳动bim软件开发面试
山东微听网络技术有限公司
易语言 图片储存数据库
google连接服务器出问题