[MySql学习笔记] 五 锁定和事务处理分离水平
2012-12-06 12:26
686 查看
锁定的种类有共享锁(Shared Lock)和排它锁(eXclusive Lock)。共享锁也教唆读取锁定,上了共享锁后其他用户可以继续读取数据,但是不能修改。排它锁有加写入锁定或者独占锁定,其他用户不能访问数据。
锁定粒度就是锁定对象的大小,有三种锁定粒度:
记录(行)
表
数据库
并不是锁定粒度越小越好,如果数据库中行单位粒度的锁定大量发生是,数据库有将这些锁定的李东自动向上提升的机制,通常被成为锁定提升(Lock Escalation)
分离水平用来确定事务处理之间的影响程度(同时运行时相互影响的机制),分离水平越高,数据的整合性随之越高,但同时运行性下降。相反如果分离水平越低,数据整合性降低的同时,运行性提高了。根据数据的用途,分离水平的选择是开发人员必须判断或决定的。分离水平越高,维持锁定的时间久越长,这样同时运行性就会降低。增加死锁产生的概率。
并发操作带来数据不一致情况大致可以分为四类:1.丢失数据修改(另一本书上写的)2.读脏数据 3.不可重复读 4.产生幽灵(或称幻影)数据。
深入理解失误处理内部动作
与失误处理相关的日志可以分为两种类型,一个UNDO日志,另一个是REDO日志。
UNDO日志
又称为回滚段(Rollback Segment),在进行数据的插入、更新、删除的场合,保存变更之前的数据。在ROLLBACK时获得旧数据来覆盖新数据。ROLLBACK后或者COMMIT后,UNDO日志将被删除。
REDO日志
有时被称为事务处理日志或者日志。事务处理确定后,由于错误等原因是数据的更新没有正确反映到数据库中的时候,REDO日志提供了数据恢复用的手段。一般来说,对数据库进行了更新这些更新首先被保存在缓冲中,等到一定时间后集中处理,如果这时候出现错误的话,缓冲中的数据被丢失,这就需要REDO来进行复原。
锁定粒度就是锁定对象的大小,有三种锁定粒度:
记录(行)
表
数据库
并不是锁定粒度越小越好,如果数据库中行单位粒度的锁定大量发生是,数据库有将这些锁定的李东自动向上提升的机制,通常被成为锁定提升(Lock Escalation)
分离水平用来确定事务处理之间的影响程度(同时运行时相互影响的机制),分离水平越高,数据的整合性随之越高,但同时运行性下降。相反如果分离水平越低,数据整合性降低的同时,运行性提高了。根据数据的用途,分离水平的选择是开发人员必须判断或决定的。分离水平越高,维持锁定的时间久越长,这样同时运行性就会降低。增加死锁产生的概率。
分离水平 | 读脏数据 | 不可重复读 | 产生幽灵数据 |
READ UNCOMMITTED | Y | Y | Y |
READ COMMITTED | N | Y | Y |
REPEATEBLE READ | N | N | Y |
SERIALIZABLE | N | N | N |
深入理解失误处理内部动作
与失误处理相关的日志可以分为两种类型,一个UNDO日志,另一个是REDO日志。
UNDO日志
又称为回滚段(Rollback Segment),在进行数据的插入、更新、删除的场合,保存变更之前的数据。在ROLLBACK时获得旧数据来覆盖新数据。ROLLBACK后或者COMMIT后,UNDO日志将被删除。
REDO日志
有时被称为事务处理日志或者日志。事务处理确定后,由于错误等原因是数据的更新没有正确反映到数据库中的时候,REDO日志提供了数据恢复用的手段。一般来说,对数据库进行了更新这些更新首先被保存在缓冲中,等到一定时间后集中处理,如果这时候出现错误的话,缓冲中的数据被丢失,这就需要REDO来进行复原。
相关文章推荐
- mysql 锁定与实务处理分离水平
- 49.笔记 MySQL学习——事务处理
- 50.笔记 MySQL学习——利用事务处理保证语句
- 事务处理及锁定 【数据库高效编程 - 学习笔记 第六章】
- 【mysql学习笔记】-事务处理
- [MySql学习笔记] 四 存储引擎事务处理
- MySql学习笔记——锁与事务机制
- day13_Mysql事务与数据库连接池学习笔记
- MyGeneration学习笔记(8) :dOOdad提供的数据绑定、特殊函数和事务处理
- MySQL事务控制语句(学习笔记)
- MYSQL入门学习之十五:事务处理的基本操作
- mysqlbinlog- 处理二进制日志文件的实用工具 学习笔记
- MySQL学习笔记 第九讲:视图、事务、触发器
- mysql 事务学习笔记
- (MYSQL学习笔记4)事务的开启、提交、回滚
- PHP MYSQL 事务处理-锁定
- 十、Oracle数据库之学习笔记---Oracle事务处理
- Spark学习笔记(4)Spark Streaming的Exactly-One的事务处理
- 51.笔记 MySQL学习——使用事务保存点句
- 【MySQL学习笔记】3:使JDBC后端程序和MySQL数据库在局域网内分离