一、关系型数据库
二、数据类型
1.基本类型:Integer, Numeric, String, Boolean
2.结构类型:Date/Time, Array, Range, UUID
3.文档类型:JSON/JSONB, XML, Key-value(Hstore)
4.几何类型:Point, Line, Circle, Polygon
5.自定义类型:Composite, Custom Types
三、数据的完整性
1.唯一性,不为空
2.主键
3.外键
4.排除约束
5.显式锁定,咨询锁定
四、并发性&&性能
1、索引 && 高级索引
2、复杂的查询计划期/优化器
3、交互
4、多版本并发控制(MVCC)
5、读取查询的并行化和构建B树索引
6、表分组?
7、Sql标准中定义的所有事物隔离级别,包括Serializable
8、即时表达式汇编(JIT)
五、可靠性&&灾难性恢复
1、预写日志(WAL)?pg_wall?
2、复制:异步,同步,逻辑
3、时间点恢复(pitr),主动备用
4、表空间?
六、安全性
1、身份验证:SSPI,LDAP,SCRAM-SHA-256,GSSAPI,证书等;
2、强大的访问控制系统
3、列和行级安全性
七、可扩展性
1、存储的功能和程序
2、程序语言:PL/PGSQL,Perl,Python(more)
3、外部数据包装器:使用标准SQL接口连接到其他数据库或流
4、许多提供附加功能的扩展,包括PostGIS
八、强大功能
1、在高并发读写,负载逼近极限下,PG的性能指标仍然可以维持双曲线甚至对数曲线,到顶峰之后不再下降。
2、PG多年在GIS领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG中有大量的字典、数组、bitmap等数据类型。
3、MVCC?
4、PG的可以使用函数和条件索引,这使得PG数据库的调优非常灵活。
5、PG有极其强悍的SQL编程能力,有丰富的统计函数和统计语法支持,比如Window函数(Oracle的叫:分析函数),还可以用多种语言来写存储过程,也支持R语言。
6、PG的有很多中集群架构可以选择,plproxy可以支持语句级的镜像或者分片,slony可以进行字段级的同步设置,standby可以构建WAL文件级或者流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。
7、PG的TEXT类型可以直接方法,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。用PG的话,文档数据库就可以省略了。??