PostgreSQL是一个功能强大的开源对象关系数据库系统。以下是PostgreSQL数据库的优缺点:
优点:
- 开源免费,完全可以做到自主可控,支持在所有主流操作系统上运行。例如:Linux,FreeBSD,OS X,Solaris和Microsoft Windows等;
- 稳定性强,在应对引擎崩溃、断电等灾难场景下抗打击能力有了长足进步;
- 拥有丰富的数据类型(空间、几何、网络、jsonb),支持自定义类型,自定义操作符,方法重载,OO特性,支持分区表、物化视图、触发器、函数;
- 拥有丰富的语言集成支持,(pl/pgsql, java, c, python, perl, tcl)和开放数据库连接(ODBC)的编程接口;
- 丰富的索引类型
缺点:
- 因为使用了MVCC,数据库需要定期VACUUM,需要定期维护表和索引避免膨胀导致性能下降。(MVCC在后面会做详细解释)
- 没有很好的开源集群监控方案,需要自己做。
- 慢查询日志和普通日志是混在一起的,需要自己解析处理。
PostgreSQL数据库的数据类型大致有以下几种:Boolean(布尔型),Character(字符型),Numeric(数字类型),Temporal(时态数据类型),Array(数组类型),JSON,UUID(由RFC 4122、ISO/IEC 9834-8:2005以及相关标准定义的通用唯一标识符)。
接下来介绍一下几个基本的数据类型:
boolean有true、false和null三种状态,同时支持以下文字类型输入。
字符类型有三种:char,varchar,text。
大多数情况下应该选择text或者varchar。
PostgreSQL提供两种不同类型的数字:整数、浮点数
PostgreSQL支持保存数组类数据
1、创建数组字段:
2、插入array数据的两种方式
3、查找array数据
4、修改array数据
1、创建表
2、插入数据
3、查看数据
4、访问JSON数据,Pg提供两种方式访问 JSON 数据: -> 和 ->> 前者返回json数据,后者返回text 格式
主要在分布式项目中防止id冲突。