标签:java repeat 一致性 table 区别 获取 list 重点 读取
原子性(Atomicity): 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用。
一致性(Consistency): 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的。
隔离性(Isolation): 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的。
持久性(Durability): 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
不可重复读和幻读区别:
出现不一致的细粒度不同,不可重复读是A第二次读一条记录发现某些列的值被修改,幻读的重点在于A发现增多或减少几行记录。
在数据库事务中,为保证并发数据读写的正确性而提出的定义,它并不是MySQL专有的概念,而是源于ANSI/ISO制定的SQL-92标准。
每种关系型数据库都提供了各自特色的隔离级别实现,以最常见的MySQL InnoDB引擎为例,它是基于MVCC(Multi-Versioning Concurrency Control)和锁的复合实现,按照隔离程度从低到高,MySQL事务隔离级别分为四个不同层次:
悲观锁一般利用类似SELECT … FOR UPDATE这样的语句对数据加锁,避免其他事务修改数据。乐观锁则与Java并发包中的AtomicFieldUpdater类似,也是利用CAS机制,并不会对数据加锁,而是通过对比数据的时间戳或者版本号,来实现乐观锁需要的版本判断。 MVCC本质就可以看作乐观锁机制,而排他性的读写锁、双阶段锁等则是悲观锁的实现。
《Java核心技术36讲》
《MySQL必知必会》
标签:java repeat 一致性 table 区别 获取 list 重点 读取
原文地址:https://www.cnblogs.com/ChengzhiYang/p/12512576.html