PostgreSQL学习(2)-- mvcc

  在数据库中,并发的操作进行读写数据,则会遇到脏读、不可重复读、幻读、串行化异常等问题。

  数据库事务的特性: 

  1. 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行;
  2. 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束;
  3. 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行;
  4. 持久性(Durability):一个事务一旦提交,他对数据库的修改应该永久保存在数据库中。

  数据库中存在4种事务隔离级别,读未提交、读已提交、可重复读和可序列化。

  PostgreSQL在9.3版本后,已经支持了这四种标准的事务隔离级别。可以通过SET TRANSACTION命令设置当前事务的隔离级别(Transaction Isolation)。

PostgreSQL事务隔离级别和对应数据库问题的关系
隔离级别 脏读  不可重复读 幻读 串行化异常
读未提交 允许,但pg不支持 可能 可能 可能
读已提交 不可能 可能 可能 可能
可重复读 不可能 不可能 允许,但pg不支持 可能
可序列化 不可能 不可能 不可能 不可能

  从上表中可以看到在PostgreSQL中,“读未提交”隔离级别,不允许脏读;“可重复读”隔离级别,不允许幻读。

  

 

原文地址:https://www.cnblogs.com/plairst/p/9378931.html

时间: 2024-11-05 13:45:03

PostgreSQL学习(2)-- mvcc的相关文章

PostgreSQL学习手册(五) 函数和操作符

PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符:    常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符:    下面是PostgreSQL中提供的比较操作符列表: 操作符 描述 < 小于 > 大于 <= 小于或等于 >= 大于或等于 = 等于 != 不等于 比较操作符可以用于所有可以比较的数据类型.所有比较操作符都是双目操作符,且返回boolean类型.除了比较操作符以外,我们还可以使用BETWEEN语句,如

PostgreSQL学习手册(常用数据类型)

一.数值类型: 下面是PostgreSQL所支持的数值类型的列表和简单说明: 名字 存储空间 描述 范围 smallint 2 字节 小范围整数 -32768 到 +32767 integer 4 字节 常用的整数 -2147483648 到 +2147483647 bigint 8 字节 大范围的整数 -9223372036854775808 到 9223372036854775807 decimal 变长 用户声明精度,精确 无限制 numeric 变长 用户声明精度,精确 无限制 real

postgresql学习记录1

数据库9.3.5,系统fedora20,不同系统操作略有不同. 使用yum 命令安装即可:sudo yum install postgresql,postgresql-server 安装完毕后系统中会创建一个postgres的用户,切换到这个用户后进行数据库的初始化: 1 initdb --encoding=UTF-8 --no-locale -D /var/lib/pgsql/data/ 或者使用postgresql-setup initdb 命令. 紧接着启动服务:pg_ctl -D /va

【PostgreSQL学习之旅】第一篇:Linux和Windows下安装PostgreSQL9.4

一.简介 PostgreSQL是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等:其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务.子查询.多版本并行控制系统(MVCC).数据完整性检查等特性的唯一的一种自由软件的数据库管理系统. 二.Linux下安装 1) 环境:RedHat Enterprise 6.5 x64(2.6.32-431.el6.x86_64) PostgreSQL

2015第15周日PostgreSQL学习

英文版官网地址:http://www.postgresql.org/ 上面显示的最新版本信息是PostgreSQL 9.4.1, 9.3.6, 9.2.10, 9.1.15 & 9.0.19 Released! 中文版社区地址:http://www.postgres.cn/home 显示2014/12/18: 全球开发组宣布业界领先的开源关系数据库PostgreSQL9.4版发布,这个版本新增了许多的功能,来适应不同的数据库用户灵活性.可伸缩性和性能提升的要求,包括对JSON 数据的支持改进,增

postgresql学习之安装篇

---恢复内容开始--- 安装方法: 1.可以使用操作系统自带的安装源 2.可以使用官网下载的源码进行安装 3.可以使用编译好的包入.run格式的安装包安装(本文使用的是这种安装方法,下载地址http://www.postgres.cn/download) 安装之前首先需要为postgresql数据库新建一个管理员用户: groupadd postgres mkdir /home/postgres useradd postgres -g postgres -s /bin/bash -b /hom

Postgresql学习笔记(二)配置文件

1.配置文件 配置文件控制着一个PostgreSQL服务器实例的基本行为,主要包含postgresql.conf.pg_hba.conf.pg_ident.conf (1)postgresql.conf 该文件包含一些通用设置,比如内存分配,新建database的默认存储位置,PostgreSQL服务器的IP地址,日志的位置以及许多其他设置.9.4版引入了 一个新的postgresql.auto.conf文件,任何时候执行Altersystem SQL命令,都会创建或重写该文件.该文件中的设置会

Postgresql学习笔记

Postgresql源码安装: 从http://www.postgresql.org/download/下载源码v9.4.5编译安装 ./configuremakesumake install  //安装完成adduser postgresmkdir /usr/local/pgsql/datachown postgres /usr/local/pgsql/datasu - postgres/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data  

Postgresql 学习笔记(1)

一.环境 #配置远程连接 su postgres   vim /var/lib/pgsql/9.4/data/postgresql.conf   编辑配置文件   listen_address='localhost' 前面的注释#去掉,并把'localhost'该为'*';   vim /etc/postgresql/8.2/main/pg_hba.conf   host all all 192.168.1.0/24 password    password 可以设置为trust   /etc/