MySQL5.7新特性之在线DDL不会锁表
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,MySQL5.7在线修改varchar字段不在锁表,测试过程如下:点击(此处)折叠或打开mysql> select version();+------------+| version() |+----
千家信息网最后更新 2025年01月31日MySQL5.7新特性之在线DDL不会锁表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获得更多日志缓存空间解决问题 。
命令
日志
缓存
在线
版本
空间
语句
较大
频繁
一致
一致性
业务
两个
压力
原理
同时
大小
字段
很快
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全合规或内控
网络安全审查指的是什么
如何查看阿里云数据库密码
本科软件开发学什么
国内服务器厂商都有哪家
江门安卓软件开发
linux服务器代运维 豆瓣
搜索关于网络安全
360服务器防护开启后
一建通信网络技术课件
网络安全法题目测试
我是网络安全小卫士手抄报文字
网络技术水平滞后
中国美协会员数据库赵文砚
虚拟云服务器怎么设置网页
维护网络安全的软件
教室系统数据库
葫芦侠实行网络安全
安徽服务器专用机柜云服务器
软件开发w亿玛酷1专注
安徽视频会议服务器厂家云服务器
软件开发企业的促销策略
监控服务器是用来做什么
数据库技术的核心是( )
数据库表设计历史版本
公司购软件开发费会计分录
向数据库中添加自由表
web编程技术数据库链接
成都卫星同步数显钟服务器
企业信息管理数据库课程设计