一、事务的介绍和特点
1、事务:一个数据库事务由一条或者多条sql语句构成,它们形成一个逻辑的工作单元。这些sql语句要么全部执行成功,要么全部执行失败,这就符体现了事务的原子性;
2、事务的特点:保证数据的完整性和一致性
二、事务的分类
1、DCL事务:(grant、revoke)不受自动提交的影响,和autocommit是否开启无关
2、DDL事务:(create、alter、drop)不受自动提交的影响,和autocommit是否开启无关
3、DML事务:(由一条或者多条DML语句组成)受自动提交的影响,和autocommit是否开启有关,如果关闭了,需要手动进行commit
三、事务的两个操作
1.commit --》提交:数据从内存写到磁盘里
2.rollback --》回滚:内存里修改的数据,不落盘,同时撤销原来的操作
四、事务的保存点
1、保存点:用来在事务中做一个标记,专门提供给rollback to 语句使用的
2、rollback to:回滚到保存点。专门用来撤销事务所作的部分工作,保存点之后所做的工作全部撤销。该语句并不结束事务
3、事务回滚示例:
4、事务的并发控制
采用的机制就是:锁
5、事务的四个特性
1、原子性
2、一致性
3、隔离性
4、持久性
五、并发、并行、串行
1、并发:在一个时间段内,不是同时发生的,只是在某个时间段里,是同时发生的。
2、并行:同一个时间点同时操作执行
3、串行:按照实践顺序去执行
六、并发事务的4个问题
1.脏读:一个事务读到了另一个事务未提交的数据
2.不可重复读:两次读到的数据值不一样,进行了update操作
3.幻读:两次读到的次数不一样,进行了insert、delete操作
4.丢失更新:是允许发生的
七、解决并发问题的4个隔离级别
1.读未提交
2.读已提交
3.可重复读 #mysql里面默认的
4.可串行化