MySQL5.7新特性之在线DDL不会锁表
发表于:2022-08-20 作者:安全数据网编辑
编辑最后更新 2022年08月20日,MySQL5.7在线修改varchar字段不在锁表,测试过程如下:点击(此处)折叠或打开mysql> select version();+------------+| version() |+----
MySQL5.7在线修改varchar字段不在锁表,测试过程如下:
窗口一:
总结:MySQL5.7以上的版本,online DDL不会锁表。
原理:
MySQL5.7以上的版本中,在执行创建或者删除的操作同时,将DML操作日志写入一个缓存中。待修改完成之后再重做到原表上,以保住数据的一致性。这个缓存大小由innodb_online_alter_log_max_size控制,默认为128MB,若用户更改表比较频繁,在线DML业务压力较大,则innodb_online_alter_log_max_size空间不能存放日志,会抛出错误,此时可以调大innodb_online_alter_log_max_size获得更多日志缓存空间解决问题 。
点击(此处)折叠或打开
- mysql> select version();
- +------------+
- | version() |
- +------------+
- | 5.7.18-log |
- +------------+
点击(此处)折叠或打开
- mysql> select count(*) from T_USER_INFO;
- +----------+
- | count(*) |
- +----------+
- | 7147528 |
- +----------+
窗口一:
点击(此处)折叠或打开
- mysql> alter table T_USER_INFO modify column USER_NAME varchar(100);
点击(此处)折叠或打开
- mysql> delete from T_USER_INFO where user_name='rz19930119';
总结:MySQL5.7以上的版本,online DDL不会锁表。
原理:
MySQL5.7以上的版本中,在执行创建或者删除的操作同时,将DML操作日志写入一个缓存中。待修改完成之后再重做到原表上,以保住数据的一致性。这个缓存大小由innodb_online_alter_log_max_size控制,默认为128MB,若用户更改表比较频繁,在线DML业务压力较大,则innodb_online_alter_log_max_size空间不能存放日志,会抛出错误,此时可以调大innodb_online_alter_log_max_size获得更多日志缓存空间解决问题 。
c语言网络技术和编程语言总结
c语言对应的三级考试网络技术
网站服务器后台如何加防护密码
c语言软件开发步骤
c语言中网络技术知识点
服务器对权限提升的防护措施
怎么在阿里云租服务器
黑苹果能做web服务器吗
c语言和网络技术哪个好考
云服务器2核4G是什么性能
从零开始写一个rtmp服务器
怀柔区数据网络技术软件
哪些地方有华为服务器
苏州快马网络技术有限公司
阿里云搭建香港中转服务器
备份还原mysql数据库
网络安全问题中比例最高的是
系统集成管理和数据库管理哪个好
魔兽争霸网易服务器
数字量化钱包软件开发
翼展科技 首家互联网医院
吉林现代软件开发系列
流浪武士服务器要强化吗
金华广电网络技术和银行
服务器报错436
哪些客户会用到云服务器
设计软件开发项目合同
网络安全审查办法从什么时间实施
管家婆数据库导出
和软件开发相关的社团名称
数字媒体技术和数据库工程
软件开发的分析和评估
创工场互联网科技有限公司
服务器数据返回无效怎么办
csgo为什么一直连接服务器失败
redis大数据量转移到数据库
王者服务器不响应为什么
幼儿网络安全知识小常识
哪些客户会用到云服务器
中国10大网络安全品