首页 / 更多教程 / Innodb核心特性-事务
Innodb核心特性-事务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Innodb核心特性-事务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2967字,纯文字阅读大概需要5分钟。
内容图文
![Innodb核心特性-事务](/upload/InfoBanner/zyjiaocheng/526/f4d0aa1e94c8478d84500acd9a6883d3.jpg)
1.什么是事务?
主要针对DML语句(update,delete,insert)
1.一组数据操作执行步骤,这些步骤被视为一个工作单元:
1)用于对多个语句进行分组
2)可以在多个客户机并发访问同一个表中的数据时使用
2.所有步骤都成功或都失败
1)如果所有步骤正常,则执行
2)如果步骤出现错误或不完整,则取消
3.和事务相关的两条重要的SQL语句(TCL)
1)commit:提交
2)rollback:回滚
2.事务的通俗理解
1.我们理解的“交易”是什么?
1)物与物的交换(古代)
2)货币现金与实物的交换(现代1)
3)虚拟货币与实物的交换(现代2)
4)虚拟货币与虚拟实物交换(现代3)
2.数据库中的“交易”是什么?
1)事务又是如何保证“交易”的“和谐”?
2)ACID
3.事务的演示
1.成功事务
mysql> start transaction;#手动开启事务
mysql> insert into t_user(name) values(‘pp‘);
mysql> commit;#commit之后即可改变底层数据库数据
mysql> select * from t_user;
+----+------+
| id | name |
+----+------+
| 1 | jay |
| 2 | man |
| 3 | pp |
+----+------+
3 rows in set (0.00 sec)
2.事务回滚
mysql> start transaction;
mysql> insert into t_user(name) values(‘yy‘);
mysql> rollback;
mysql> select * from t_user;
+----+------+
| id | name |
+----+------+
| 1 | jay |
| 2 | man |
| 3 | pp |
+----+------+
3 rows in set (0.00 sec)
4.事务的特性(ACID)
Atomic(原子性)
所有语句作为一个单元全部成功执行或全部取消。
Consistent(一致性)
如果数据库在事务开始时处于一致状态,则在执行该。事务期间将保留一致状态。
Isolated(隔离性)
事务之间不相互影响。
Durable(持久性)
事务成功完成后,所做的所有更改都会准确地记录在数据库中。所做的更改不会丢失。
5.事务的控制语句
START TRANSACTION(或 BEGIN):显式开始一个新事务
SAVEPOINT:分配事务过程中的一个位置,以供将来引用
COMMIT:永久记录当前事务所做的更改
ROLLBACK:取消当前事务所做的更改
ROLLBACK TO SAVEPOINT:取消在 savepoint 之后执行的更改
RELEASE SAVEPOINT:删除 savepoint 标识符
SET AUTOCOMMIT:为当前连接禁用或启用默认 autocommit 模式
6.自动提交
#临时设置关闭
mysql> set autocommit=0;
Query OK, 0 rows affected (0.02 sec)
#永久设置关闭
[root@db01 world]# vim /etc/my.cnf
[mysqld]
autocommit=0
7.事务周期
1.一个成功事务的生命周期
begin;
sql1
sql2
sql3
...
commit;
2.一个失败事务的生命周期
begin;
sql1
sql2
sql3
...
rollback;
3.事务开启的标志?事务结束的标志?
开启标志:
- 任何一条DML语句(insert、update、delete)执行,标志事务的开启
结束标志(提交或者回滚):
- 提交:成功的结束,将所有的DML语句操作历史记录和底层硬盘数据来一次同步
- 回滚:失败的结束,将所有的DML语句操作历史记录全部清空
8.事务隐式提交情况
1.自动提交
1.现在版本在开启事务时,不需要手工begin,只要你输入的是DML语句,就会自动开启事务。
2.有些情况下事务会被隐式提交
2.隐式提交
1.在事务运行期间,手工执行begin的时候会自动提交上个事务
2.在事务运行期间,加入DDL、DCL操作会自动提交上个事务
3.在事务运行期间,执行锁定语句(lock tables、unlock tables)
4.load data infile导出数据成一个文件
5.在autocommit=1的时候
Innodb核心特性-事务
标签:情况 提交 art lock 货币 分组 位置 tab 访问
本文系统来源:https://www.cnblogs.com/Applogize/p/13347140.html
内容总结
以上是互联网集市为您收集整理的Innodb核心特性-事务全部内容,希望文章能够帮你解决Innodb核心特性-事务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。