什么是事务
多条sql语句,要么全部成功,要么全部失败。MySQL的事务是在存储引擎层实现。 MySQL的事务有ACID
A 原子性(atomicity):一个事务必须被视为一个不可分割的单元。
C 一致性(consistency):数据库是从一种状态切换到另一种状态。
I 隔离性(isolation):事务在提交之前,对于其他事务不可见。
D 持久性(durablity):一旦事务提交,所修改的将永久保存到数据库。
事务命令
事务开始:start transaction
事务开始:begin
事务提交:commit
事务回滚:rollback
编写事务开始需使用start transaction或begin编写
编写完内容只能在本机中查看
其他机中内容不变
只有在使用commit命令后才可在其他机中查看更改的内容
如果不想提交可以使用回滚rollback来撤销
查看自动提交模式是自动还是手动
事务有4种隔离级别 事务在提交之前对其他事务可不可见
- read uncommitted(未提交读)
- read committed(已提交读)
- Repeatable read(可重复读)
- serializable可串行化)
未提交读 事务中修改没有提交对其他事务也是可见的,俗称脏读
Session 设成
Transaction 事务
Isolation level 事务隔离等级
已提交读 多数数据库系统默认为此级别(MySQL不是)。已提交读级别为一个事务只能已提交事务所做的修改,也就是 解决了未提交读的问题
可重复读 解决了不可重复读的问题,数据库级别没有解决幻读的问题
可串行化 是最高隔离级别,强制事务串行执行,执行串行了也就解决问题了,这个I别只有在对数据一致性要求非常严格并且没有 并发的情况下使用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)