概况
- 架构模型
PostgreSQL是基于服务器进程模型的,这点和oracle,DB2类似,而和另一个开源大户MySQL不同。当然在windows下,它被线程了。
- 存储引擎
和MySQL不同,它的存储引擎不可插拔,也和oralce,DB2类似。
- table space 表空间
PostgreSQL 表空间可以跨越多个数据库
- schema
PostgreSQL有schema。DB2也支持。
- 数据库对象名大小写
PostgreSQL都存成小写,MySQL在linux上是大小写敏感的。一般地,oracle,DB2都是不敏感的
- instance实例
PostgreSQL的实例可以管理一个数据库集群(待研究),集群里的数据库共享一个pg_database。DB2和oracle的实例在概念上比较类似。
- 执行计划
PostgreSQL和MySQL一样,都是explain。oracle用explain plan。(当然,得出的都不是实际的真正的执行计划)
- 索引类型
支持B-tree,hash,R-tree和 Gist索引(?)
- 并发控制
支持表级和行级锁。支持的 ANSI 隔离级别是 Read Committed(默认 —— 能看到查询启动时数据库的快照)和 Serialization(与 Repeatable Read 相似 —— 只能看到在事务启动之前提交的结果)。使用 SET TRANSACTION 语句在事务级设置隔离级别。使用 SET SESSION 在会话级进行设置。
PostgreSQL体系结构和进程视图
参考文档
1. http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0606khatri/index.html