什么是事务?
事务是数据库的一个特性,组成事务的各个执行单元,要么都成功,要么都失败
事务的四个特性?
原子性: 强调的是事务不可分割的特性
一致性:强调的是事务执行前后数据需要报纸一致
隔离性:强调的是多个事务同时操作一条记录,事务之间不能互相干扰
持久性:强调的是事务一旦结束了,数据将永久保存到数据库中
在不考虑事务的隔离性的情况下,会导致的问题
脏读:一个事物读取到另一个事务未提交的数据
不可重复读:一个事务读取到了另一个事务提交了的数据,导致了多次查询结果不一致,强调的是update,修改记录的数据
虚读(幻读):一个书屋读取到了另一个事务提交了的时间,导致了多吃查询结果不一致,强调的是insert,插入记录的数据
设置事务的隔离级别(解决读的问题)
Read uncommitted 什么都解决不了
Read committed 避免脏读,但是不可重复读和虚读有可能产生
Repeatable read 避免脏读和不可重复读,有可能产生虚读
Serializable 避免各种读
种隔离级别有安全性和效率
安全 Serializable > Repeatable read > Readcommitted > Read uncommitted
效率 Serializable < Repeatable read < Readcommitted < Read uncommitted
数据库都有自己默认的隔离级别
MySQL数据库,默认的隔离级别是Repeatableread,避免脏读和不可重复读。
Oracle 数据库,默认的隔离级别是READCOMMITTED,避免藏独
转载于:https://blog.51cto.com/wangfoye/1852986