目录
概念
PostgreSQL简介
PostgreSQL的关键特性
1. 标准兼容性
2. 扩展性
3. 数据完整性和可靠性
4. 丰富的数据类型
5. 查询能力
6. 事务和并发控制
7. 扩展和插件
8. 跨平台和多语言支持
9. 高可用性和扩展性
常用场景
安装
Linux apt安装
下载安装包安装
客户端
概念
PostgreSQL简介
PostgreSQL(简称Postgres:PostgreSQL: Documentation)是一款功能强大的开源关系型数据库管理系统(RDBMS),以其稳定性、可扩展性、合规性以及强大的功能支持而闻名。它被设计为支持复杂的应用程序和大规模的并发数据处理,同时还拥有对标准SQL的高支持度,并提供了许多高级功能。
PostgreSQL的关键特性
1. 标准兼容性
- PostgreSQL 完全支持 SQL 标准(如 SQL:2011)的大部分功能。
- 提供高级查询功能,如窗口函数、公共表表达式(CTE)、递归查询、部分索引和多种连接类型。
2. 扩展性
- 用户定义类型:允许用户创建自己的数据类型。
- 扩展机制:可以动态加载插件(如
PostGIS
,支持地理空间数据)。 - 支持存储过程和函数,允许使用多种语言编写,如 PL/pgSQL、Python、Perl 和 JavaScript。
3. 数据完整性和可靠性
- 强大的事务支持,完全遵循 ACID(原子性、一致性、隔离性和持久性)属性。
- 支持多版本并发控制(MVCC),避免锁竞争,提高并发性能。
- 提供完整的数据完整性约束,包括主键、外键、唯一性约束和检查约束。
4. 丰富的数据类型
- 基本类型:
INTEGER
、NUMERIC
、TEXT
、VARCHAR
等。 - 高级类型:
JSON/JSONB
、ARRAY
(数组类型)、HSTORE
(键值存储)。 - 地理类型:通过
PostGIS
扩展支持地理空间数据。 - 复合类型:可以在表中存储结构化的复杂数据类型。
- 范围类型:支持存储区间值(如日期范围、数字范围)。
5. 查询能力
- 高级查询支持:
- 窗口函数:对分组数据执行排名、移动平均等计算。
- 递归查询:支持层次结构数据(如树形数据)的操作。
- 全文检索:提供高效的全文索引和搜索功能。
- 支持多种索引:B-Tree、GIN(Generalized Inverted Index)、GiST(Generalized Search Tree)、Hash 等。
6. 事务和并发控制
- 支持 Savepoint(保存点)和嵌套事务。
- 基于 MVCC 的并发控制,支持高性能并发访问。
- 提供多种隔离级别(
READ UNCOMMITTED
、READ COMMITTED
、REPEATABLE READ
和SERIALIZABLE
)。
7. 扩展和插件
- 支持动态加载模块,如
PostGIS
、Citus
(分布式数据库解决方案)、pglogical
(逻辑复制插件)等。 - 用户可以创建自定义函数、运算符、数据类型和索引方法。
8. 跨平台和多语言支持
- 可运行于主流操作系统(Linux、Windows、macOS 和 UNIX 系统)。
- 支持的客户端语言包括:Python(通过 Psycopg2)、Java(通过 JDBC)、Node.js、C/C++ 等。
9. 高可用性和扩展性
- 流复制:支持主从复制(同步和异步复制)。
- 逻辑复制:支持以行粒度进行数据复制,可用于表级别的数据同步。
- 分区表:高效管理和查询大规模数据。
- 分布式解决方案:通过扩展(如 Citus)实现分布式数据库功能。
常用场景
-
传统关系型数据库
适用于电子商务、ERP、CRM 等需要强大事务支持的场景。 -
地理信息系统(GIS)
结合 PostGIS 扩展,用于空间数据存储和分析。 -
数据仓库
使用分区表、并行查询和高级索引,适合 OLAP(联机分析处理)场景。 -
时序数据存储
与 TimescaleDB 结合,用于物联网、监控数据等。 -
JSON 数据存储
支持 JSON 和 JSONB,适合存储半结构化数据。
安装
Linux apt安装
sudo apt update
sudo apt install postgresql postgresql-contrib
安装完毕后,系统会创建一个数据库超级用户 postgres,密码为空。
//切换postgres用户:
# sudo -i -u postgres//这时使用以下命令进入 postgres,输出以下信息,说明安装成功:
~$ psql
psql (9.5.17)
Type "help" for help.postgres=# //输入以下命令退出 PostgreSQL 提示符:
\q
PostgreSQL服务管理:
sudo /etc/init.d/postgresql start # 开启
sudo /etc/init.d/postgresql stop # 关闭
sudo /etc/init.d/postgresql restart # 重启
下载安装包安装
下载地址:EDB: Open-Source, Enterprise Postgres Database Management。
安装完之后可以通过\du查看系统中默认的用户:
客户端
PostgreSQL也提供了客户端工具方便连接服务器,相比于命令行可以更方便进行一些数据库操作,这里介绍一个常用的客户端工具pgAdmin。
网关下载安装:pgAdmin - PostgreSQL Tools
添加server:
基于界面可以进行查询、更细和删除等操作,可mysql的客户端类似: