一、下载
| https://www.enterprisedb.com/downloads/postgres-postgresql-downloads |
| https://get.enterprisedb.com/postgresql/postgresql-11.2-1-windows-x64.exe |
二、安装
安装完成,服务启动
三、使用
psql.exe -U postgres -p 5432四、Navicat连接
五、常用SQL
PostgreSQL常用SQL
六、PostgreSQL与TDengine
1、核心定位与设计理念
| 特性 | PostgreSQL | TDengine |
|---|---|---|
| 数据库类型 | 关系型数据库(RDBMS),支持 SQL、JSON、空间数据等 | 时序数据库(TSDB),专为时间序列数据设计 |
| 设计目标 | 通用、全面、兼容 ACID,满足各类业务数据存储需求 | 高性能、低存储、低延迟处理时序数据(如物联网、监控指标) |
| 数据模型 | 基于关系模型,支持复杂表结构、关联查询、事务 | 基于时序模型,按时间线(设备 / 测点)组织数据,弱化关联,强化时序特性 |
2、核心优缺点对比
a. PostgreSQL 优缺点
优点
- 功能全面:支持完整的 SQL 标准、事务(ACID)、复杂查询(JOIN / 子查询 / 窗口函数)、存储过程、触发器,还支持 JSON/JSONB、地理信息(PostGIS)、全文检索等扩展,适配多场景需求。
- 生态成熟:开源社区活跃,工具链丰富(如 pgAdmin、psycopg2、Django/ORM 支持),兼容主流编程语言,迁移和维护成本低。
- 灵活性高:支持自定义数据类型、函数、操作符,可通过扩展插件(如 pg_cron、pg_stat_statements)扩展功能,满足个性化需求。
- 数据一致性:严格遵循 ACID 原则,支持行级锁、MVCC(多版本并发控制),适合有事务要求的业务(如电商、金融、ERP)。
缺点
- 时序数据处理效率低:面对高频写入的时序数据(如每秒十万级测点),写入性能、存储压缩比、查询效率远低于 TDengine——PostgreSQL 无专门的时序优化,大量历史数据查询会触发全表扫描,性能下降明显。
- 资源消耗高:复杂的关系模型和事务机制导致内存、CPU 占用较高,对硬件要求高于 TDengine,大规模时序数据存储成本高(无专门的时序压缩算法)。
- 缺乏时序专属功能:无自动数据分区、数据过期删除、降采样(数据聚合)等时序场景刚需功能,需手动开发实现。
b. TDengine 优缺点
优点
- 时序数据性能极致:
- 写入快:专为高并发时序数据写入优化,单节点支持每秒百万级数据点写入,支持批量写入、异步写入,适配物联网设备高频上报场景;
- 查询快:按时间范围、设备 / 测点过滤查询,响应延迟毫秒级,支持时序专属函数(如差值、速率、聚合窗口);
- 存储省:内置时序数据压缩算法(压缩比可达 10:1~20:1),大幅降低磁盘占用。
- 时序专属功能丰富:支持自动按时间分区、数据过期自动删除(TTL)、数据降采样(rollup)、连续查询(CQ),无需手动开发即可满足时序数据生命周期管理需求。
- 轻量化部署:架构简单,单二进制文件即可运行,资源占用低(内存 / CPU 消耗远低于 PostgreSQL),支持集群部署和云原生。
- 物联网适配性强:原生支持设备 / 测点模型,可直接按设备 ID、测点 ID 组织数据,无需复杂表设计,适配物联网(IoT)、工业互联网场景。
缺点
- 功能单一:仅适配时序数据场景,不支持复杂关系查询(如多表 JOIN)、事务、存储过程、触发器等,无法替代关系型数据库做业务数据存储。
- 生态薄弱:相比 PostgreSQL,社区和工具链不够丰富,部分编程语言的客户端支持度低,与传统 ORM 框架(如 MyBatis、Django ORM)适配性差。
- 兼容性差:虽支持类 SQL 语法,但不兼容完整 SQL 标准,迁移传统关系型数据到 TDengine 成本高,且不支持 ACID 事务,无法用于有事务要求的业务。
- 复杂计算能力弱:缺乏窗口函数、复杂子查询等高级 SQL 特性,处理非时序的复杂业务逻辑能力不足。
3、适用场景对比
a. PostgreSQL 适用场景
- 通用业务系统:电商、金融、ERP、OA、CRM 等需要事务保障、复杂关联查询的业务,例如订单管理、用户账户、库存系统。
- 混合数据场景:既有时序数据,又有业务数据,且需要关联查询的场景(如电商平台的用户行为日志 + 用户订单数据关联分析)。
- 非时序的复杂分析:需要多表 JOIN、统计分析、自定义函数的场景,例如报表统计、用户画像分析。
- 对生态和兼容性要求高的场景:需要适配主流框架、工具,或需与现有关系型数据库无缝迁移的场景。
b. TDengine 适用场景
- 物联网(IoT)/ 工业互联网:设备传感器数据、工控系统数据、智能硬件上报数据(如电表、水表、充电桩、生产线设备)的采集、存储和分析。
- 监控运维:服务器 / 容器监控指标(CPU、内存、磁盘)、网络流量、应用日志指标、云平台监控数据的存储和实时查询。
- 金融时序数据:股票行情、基金净值、交易流水等按时间维度高频产生的数据(仅存储和时序分析,不处理交易事务)。
- 大规模时序数据归档与分析:需要长期存储海量时序数据,且需按时间范围快速查询、降采样分析的场景(如历史数据回溯、趋势分析)。
4、选型建议
优先选 PostgreSQL:
- 业务需要事务保障、复杂关联查询、多类型数据(关系 + JSON + 空间数据)存储;
- 时序数据量小(如每日千万级以下),且需与业务数据关联分析;
- 对生态兼容性、功能全面性的要求高于极致性能。
优先选 TDengine:
- 核心数据是时序数据(按时间高频产生,无复杂关联),且数据量巨大(每日亿级以上数据点);
- 对写入性能、查询延迟、存储成本敏感;
- 需自动管理数据生命周期(过期删除、降采样),无需复杂事务和关联查询。
混合使用场景:
- 时序数据用 TDengine 存储(保证性能),业务数据用 PostgreSQL 存储;
- 通过数据同步工具(如 Flink、CDC)将 TDengine 的时序分析结果同步到 PostgreSQL,实现时序数据与业务数据的关联分析。
5、总结
- 核心差异:PostgreSQL 是 “通用型选手”,功能全面、兼容事务,适合所有关系型业务;TDengine 是 “时序专项选手”,性能极致、轻量化,仅适配时序数据场景。
- 选型关键:看核心数据类型 —— 若以时序数据为主(无复杂关联 / 事务),选 TDengine;若需处理复杂业务逻辑、事务或混合数据,选 PostgreSQL。
- 混合方案:时序数据存 TDengine,业务数据存 PostgreSQL,通过数据同步实现互补,是兼顾性能和功能的最优解。
七、PostgreSQL与TDengine
八、项目集成PostgreSQL
九、PostgreSQL应用
十、PostgreSQL问题汇总
1、could not connect to server:Connection refused (0x0000274D/10061) Is the server running on host"localhost"(::1)and accepting TCP/IP connection on port 5434
2、Navicat无法连接postgreSQL
1、修改pg_hba.conf
进入postgreSQL的data目录,打开pg_hba.conf,用记事本打开,找到IPv4 local connections,增加要连接postgreSQL的服务器ip,本例中设置所有网络都可访问。
允许所有网段上的所有主机使用所有合法的数据库用户名访问数据库,/0是子网掩码
2、修改postgresql.conf文件
在data目录中找到postgresql.conf文件,用记事本打开,修改listen_addresses = '*',允许任何ip地址监听
3、上面两步修改保存后重启postgreSQL数据库
有用请点赞,养成良好习惯!
疑问、交流、鼓励请留言!