黑马day11 事务的四大特性

1.事务的四大特性:一个事务具有的最基本的特性,一个设计良好的数据库可以为我们保证这四大特性。 1.1原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生要么都不发生。 1.2一致性:如果事务执行之前数据库是一个完整性的状态,那么事务结束后,无论事务是否执行成功,数据库仍然是一个完整性状态. 数据库的完整性状态:当一个数据库中的所有的数据都符合数据库中所定义的所有的约束,此时可以称数据库是一个完整性状态. 1.3隔离性:事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间事务要隔离 1.4持久性:持久性是指一个事务一旦被提交,,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。 2.隔离性: 将数据库设计成单线程的数据库,可以防止所有的线程安全问题,自然就保证了隔离性.但是如果数据库设计成这样,那么效率就会极其低下. 如果是两个线程并发修改,一定会互相捣乱,这时必须利用锁机制防止多个线程的并发修改 如果两个线程并发查询,没有线程安全问题 如果两个线程一个修改,一个查询…… 脏读:一个事务读取到另一个事务未提交的数据

不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同 — 行级别的问题 脏读 事务1:张三给李四转账100元 事务2:李四查看自己的账户

t1:事务1:开始事务 t2:事务1:张三给李四转账100元 t3:事务2:开始事务 t4:事务2:李四查看自己的账户,看到账户多出100元(脏读) t5:事务2:提交事务 t6:事务1:回滚事务,回到转账之前的状态 不可重复读 事务1:酒店查看两次1048号房间状态 事务2:预订1048号房间

t1:事务1:开始事务 t2:事务1:查看1048号房间状态为空闲(第一次查询) t3:事务2:开始事务 t4:事务2:预定1048号房间 t5:事务2:提交事务 t6:事务1:再次查看1048号房间状态为使用(第二次查询) t7:事务1:提交事务 对同一记录的两次查询结果不一致!

幻读 事务1:对酒店房间预订记录两次统计 事务2:添加一条预订房间记录

t1:事务1:开始事务 t2:事务1:统计预订记录100条 t3:事务2:开始事务 t4:事务2:添加一条预订房间记录 t5:事务2:提交事务 t6:事务1:再次统计预订记录为101记录 t7:事务1:提交   对同一表的两次查询不一致!

不可重复读和幻读的区别: 不可重复读是读取到了另一事务的更新; 幻读是读取到了另一事务的插入(MySQL中无法测试到幻读);

年轻是我们唯一拥有权利去编织梦想的时光

黑马day11 事务的四大特性

相关文章:

你感兴趣的文章:

标签云: