1>事务: 是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。一个数据库事务通常包含了一个序列的对数据库的读/写操作。
2>存储引擎: 1、概念:在内存中的数据通过各种不同的技术(存储引擎)存储在文件(或硬盘)中。
3>查看MySQL支持的存储引擎: show engines;
4>查看MySQL数据库默认存储引擎和当前所使用的存储引擎: show variables like '%storage_engine%';
5> 在mysql中用的最多的存储引擎有: InnoDB,MyISAM, Iremory等。其中InnoDB支持事务,而MyISAM、memory等不支持事务。
6>MySQL5.5之前的默认存储引擎是MyISAM,MySQL5.5之后默认存储引擎为InnoDB。
事务的四大特性(ACID):
- 原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成 功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
- 一致性(Consistency):一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事 务执行之前和执行之后都必须处于一致性状态。 拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转 账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致 性
- 隔离性(Isolation):隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的 事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。 即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开 始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并 发地执行。
- 持久性(Durability):持久性是指一个事务一旦被提交了,那么对数据库中数据的改变就是永久性的,即便是在数 据库系统遇到故障的情况下也不会丢失提交事务的操作。 例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们 程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问 题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕,但是 数据库因为故障而没有执行事务的重大错误。
查看事务的状态(默认为事务自动提交): show variables like 'autocommit';
注意: 在上面这种状态下,每一条sql语句都各自代表了一个事务,并且自动提交,提交的事务无法回滚,对数据库的影响是永久性的!!!
关闭事务自动提交(开启事务): 任意一条都可以,效果相同,都是关闭事务自动提交。
set autocommit = 0;
start transaction;
begin;
查看事务状态: ** show variables like 'autocommit';
事务提交: commit;(事务提交后无法回滚)
事务回滚: rollback;
隔离级别:
点击观看事务隔离级别视频
查看当前隔离级别:select @@tx_isolation;
设置隔离级别为
- 读未提交read uncommitted:
set session transaction isolation level read uncommitted;
- 读已提交read uncommitted:
set session transaction isolation level read committed;
- 可重复读:
set session transaction isolation level repeatable read;
- 串行化:
set session transaction isolation level serializable;
事务隔离级别总结:
![在这里插入图片描述](https://img-blog.csdnimg.cn/05e90a4a0a9243219ad2ff86f0248d10.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lmf6K645LuK5aSp,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/e2111c66c3d84d18b2b17f3c9385abcd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lmf6K645LuK5aSp,size_20,color_FFFFFF,t_70,g_se,x_16)
设置保存点/回滚点:savepoint 自定义保存点名字
点击观看视频演示