事务(innoDB)
1.什么是事务?
事务就是类似于一个集合,里面元素是一个整体,所以事务要么全部成功,要么全部失败,是一个整体性
2.事务基本操作?
*开始一个事务:start transaction
*建立一个保存点:savepoint 保存点名
*回到保存点:rollback to 保存点名(如果没有建立保存点,也可以回滚,只能回滚到事务的开始。直接使用rollback)
*提交:commit (提交后不可回滚)
3.事务的隔离级别?
当MySQL表被多个线程或者客户端开启各自事务操作数据库中的数据时,MySQL提供了一种机制,可以让不同事务在操作数据时,具有隔离性,从而保证数据的一致性。
3.1我们首先来看看若事务之间没有隔离? 会产生哪些问题
--脏读:当数据被修改而未提交时,被读取,读取结果并非最终结果
--不可重复读:不能读到相同的数据内容
--幻读:事务1在读取内容,事务2添加了内容,这时事务1读取到表中没有的数据,就像发生了幻觉一样
3.1.1事物的隔离级别 (MySQL默认隔离级别是可重复读)
设置事务的隔离级别:set session transaction isolation level (read uncommitted /read committed /repeatable read /serializable )
4.事务的ACID特性
*原子性(Atomicity)
*一致性(Consistency)
*隔离性(Isolation)
*持久性(Durability)