【高性能MySQL】什么是事务日志及MySQL中的事务
【高性能MySQL】什么是事务日志及MySQL中的事务
大家好,今天又来更文了。上篇文章简单介绍了事务之后,我们来学习下什么是事务日志和MySQL中的事务。
事务日志可以帮助提高事务效率。事务开始和结束都会记录到事务日志中,存储引擎在修改表数据时,只修改其内存拷贝,并把修改行为记录到硬盘上的事务日志中,事务日志是按顺序追加的,因此写日志的操作磁盘上一小块区域内的顺序I/O,而不是随机IO,需要在磁盘上移动磁头,所以记录事务日志很快,事务日志持久以后,内存中被修改的数据在后台,根据记录的事务日志再慢慢回写到磁盘上。通常称之为预写式日志。
如果数据的修改只记录到了事务日志,内存中的数据还没有回写到磁盘时,系统崩溃了,存储引擎在重启的时候能够自动恢复这部分修改的数据。
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组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 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 |