PostgreSQL学习笔记(一):PostgreSQL介绍和安装
目录
概念
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的客户端类似: