您现在的位置是:首页 > 编程 > 

【高性能MySQL】什么是事务日志及MySQL中的事务

2025-07-25 10:53:21
【高性能MySQL】什么是事务日志及MySQL中的事务 大家好,今天又来更文了。上篇文章简单介绍了事务之后,我们来学习下什么是事务日志和MySQL中的事务。1、事务日志事务日志可以帮助提高事务效率。事务开始和结束都会记录到事务日志中,存储引擎在修改表数据时,只修改其内存拷贝,并把修改行为记录到硬盘上的事务日志中,事务日志是按顺序追加的,因此写日志的操作磁盘上一小块区域内的顺序I/O,而不是随机IO

【高性能MySQL】什么是事务日志及MySQL中的事务

大家好,今天又来更文了。上篇文章简单介绍了事务之后,我们来学习下什么是事务日志和MySQL中的事务。

1、事务日志

事务日志可以帮助提高事务效率。事务开始和结束都会记录到事务日志中,存储引擎在修改表数据时,只修改其内存拷贝,并把修改行为记录到硬盘上的事务日志中,事务日志是按顺序追加的,因此写日志的操作磁盘上一小块区域内的顺序I/O,而不是随机IO,需要在磁盘上移动磁头,所以记录事务日志很快,事务日志持久以后,内存中被修改的数据在后台,根据记录的事务日志再慢慢回写到磁盘上。通常称之为预写式日志。

如果数据的修改只记录到了事务日志,内存中的数据还没有回写到磁盘时,系统崩溃了,存储引擎在重启的时候能够自动恢复这部分修改的数据。

2、MySQL中的事务

MySQL提供了两种事务型的存储引擎:InnoDB和DB Cluster。

MySQL默认使用自动提交(AUTOCOMMIT)模式。如果不是显示的开始一个事务,那么每个查询都被当做一个事务提交。

查看MySQL的自动提交模式:

代码语言:sql复制
show variable like 'autocommit';

autocommit=1或者O时表示开启自动提交模式。autocommit=0或者OFF表示禁用。修改autocommit对于非事务型表,不会有影响。

修改提交模式:

代码语言:sql复制
set autocommit=1;

另外还有一些命令,在执行之前会强制执行commit提交当前的活动事务。比如ALTER TABLE、LOCK TABLES。

MySQL中默认的隔离级别是REPEATABLE READ可重复读模式。

执行如下命令修改隔离级别为提交读:

代码语言:sql复制
set transaction isolation level read commited;

在事务中不要混合使用存储引擎。

隐式和显示锁定是什么?

InnoDB采用的是两阶段锁定协议。事务在执行过程中,随时都可以执行锁定,锁只有在提交和回滚时候才会释放。InnoDB会根据隔离级别在需要的时候自动加锁。这是隐式锁定。

InnoDB也支持通过特定的语句显示加锁。比如:

代码语言:sql复制
select ... for update;
select ... lock in share mode;

每天学习一点,每天进步一点!

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1206153.html

相关标签:无
上传时间: 2025-07-24 09:29:09
留言与评论(共有 14 条评论)
本站网友 清丰二手房
1分钟前 发表
今天又来更文了
本站网友 王境泽生成器
18分钟前 发表
事务开始和结束都会记录到事务日志中
本站网友 乐山房屋出租
24分钟前 发表
比如:代码语言:sql复制select ... for update; select ... lock in share mode;每天学习一点
本站网友 梨园小区租房
22分钟前 发表
MySQL中的事务MySQL提供了两种事务型的存储引擎:InnoDB和DB Cluster
本站网友 抹胸是什么意思
15分钟前 发表
InnoDB也支持通过特定的语句显示加锁
本站网友 一田百货
19分钟前 发表
隐式和显示锁定是什么?InnoDB采用的是两阶段锁定协议
本站网友 健康产业项目有哪些
10分钟前 发表
系统崩溃了
本站网友 新年贺卡下载
24分钟前 发表
如果不是显示的开始一个事务
本站网友 怎样学游泳
15分钟前 发表
如果不是显示的开始一个事务
本站网友 momo9
0秒前 发表
事务日志事务日志可以帮助提高事务效率
本站网友 董顺生
13分钟前 发表
事务日志事务日志可以帮助提高事务效率
本站网友 领袖慧谷
11分钟前 发表
这是隐式锁定
本站网友 原地跑步减肥
12分钟前 发表
LOCK TABLES