postgresql事务】的更多相关文章

查看更多教程:http://www.gitbook.net/postgresql/2013080567.html pgsql事务与并发控制 事务与并发控制 数据库几大特性: ACID: Atomicity:原子性:一个事务要么全部执行,要么全部不执行 Consistency :一致性:执行事务的时候,数据库从一个一致的状态变更到另一个状态 Isolation:隔离性: 确保在并发执行的时候,每个事务感觉不到其他事务在并发的执行 Durability:持久性:一个事务完成之后,即使数据库发生故障,…
事务简介 事务管理器:有限状态机 日志管理器 CLOG:事务的执行结果 XLOG:undo/redo日志 锁管理器:实现并发控制,读阶段采用MVCC,写阶段采用锁控制实现不同的隔离级别 PostgreSQL为每条事务创建一个postgre进程,并发执行事务.采用分层的机制执行事务,上层事务块和底层事务.上层事务块是用户眼中的事务,用于控制事务执行的状态:底层事务是事务中的每条语句,可以改变上层事务块的状态. 上层事务块 每个postgre进程只有一个事务块,上层事务块记录着本次事务执行过程中的各…
Table of Contents 事务的特性 并行事务的问题 事务隔离级别 Odoo事务隔离级别 odoo事务控制         事务的特性 事务4个特性,简写未ACID 原子性(Atomicity): 事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行.     一致性(Consistemcy): 事务前后,数据库的状态都满足所有的完整性约束.     隔离性(Isolation): 并发执行的事务是隔离的,一个不影响一个.如果有两个事务,运行在相同的时间内,执行相同…
PostgreSQL的并发控制机制同时实现了多版本控制MVCC协议和两阶段封锁协议.实际采用哪种协议取决于所执行的语句类型. DML语句的并发控制将使用MVCC协议: DDL语句的并发控制基于标准的两阶段封锁协议. MVCC的关键思想是维护每一行的不同版本,而不同版本对应着在不同的时间点该行的不同实例.MVCC协议确保每个事务都只看到与事务的数据库视图一致的版本的数据:每个事务看到数据的一个快照,只包含那些在事务启动时已提交的数据.这个快照并不等于数据的当前状态. 使用MVCC的目的 是让读操作…
1.事务的使用 begin;//开启关闭自动提交的事务 insert into testtab01 values(0); rollback;//事务回滚 2.SavePoint的使用 begin;//开启关闭自动提交的事务 insert into testtab01 values(0); savepoint first_savepoint;//创建事务保存点 insert into testtab02 values(1); rollback;//事务回滚 insert into testtab0…
嵌套事务的实现是基于SAVEPOINT.ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT的,也就是设置一个保存点,可以回滚到保存点和释放保存点. 测试表的初始状态如下: postgres=# \d test Table "public.test" Column | Type | Modifiers --------+---------+----------- id | integer | name | text | postgres=# select *…
2.5 XLOG的内部结构 我们将使用事务贯穿本书,并让您在技术层面上更深地洞察事情是如果工作的,我们已经增加了这部分专门处理XLOG的内部工作机制.我们会尽量避免前往下降到C级,因为这将超出本书的范围,但我们会为您提供希望足够深的见解. 2.5.1 理解XLOG记录 对XLOG所做的更改是基于记录的.这意味着什么?让我们假设您在给一个表添加一行数据: test=# INSERT INTO t_test VALUES (1, 'hans'); INSERT 0 1 在这个例子中,我们正在插入一个…
2.3 理解一致性和数据丢失 挖掘PostgreSQL事务日志而不考虑一致性是不可能的.在本章的第一部分,我们已经大体上解释了事务日志的基本思想.您已经知道,无需事先的日志改变的能力,使数据处于一种好的形状是很难甚至是不可能的. 到现在为止,我们大多都在讨论崩溃的问题.因为数据文件中的条目的损坏而丢失文件是绝对不好的.但是,崩溃不是您要关心的唯一问题.另外两个重要的主题是: • 性能 • 数据丢失 虽然这可能是一个重要的主题的明显的选择,我们有这样的感觉,这两个主题都不好理解,是受尊敬的,并因此…
2.2 XLOG和复制 在本章中,您已经了解到PostgreSQL的事务日志已经对数据库做了所有的更改.事务日志本身被打包为易用的16MB段. 使用这种更改集来复制数据的想法是不牵强的.事实上,这是在每个关系(或者甚至非关系)数据库系统的发展的一个逻辑步骤.本书的其它部分,您将在许多方面看到PostgreSQL事务日志可以如何以许多不同的方法被使用,获取,存储,复制,和分析. 在大多数的复制系统中,PostgreSQL事务日志是整个体系结构(用于同步复制和异步复制)的的骨干.…
http://www.postgresql.org/about/news/1557/ 2014年12月18日,PostgreSQL全球开发小组发布PostgreSQL9.4,PostgresQL是世界领先的开源数据库.针对不同类型的数据库用户,此版本增加了许多新的特性,包括提升PostgreSQL的灵活性,可扩展性和性能,改进对JSON支持,数据复制和索引. 灵活性通过使用PostgreSQL的新JSONB数据类型,用户不再需要在关系和非关系型数据存储之间做出选择,而是二者都可以兼得. JSON…