Repolode
jackc

jackc/pgx

纯 Go 实现的 PostgreSQL 驱动与工具包,支持 LISTEN/NOTIFY、COPY 等 PostgreSQL 专有功能。

Star
14,384
Fork
1,159
未关闭 Issue
218
最近提交
前天

这是什么?

pgx 是一个纯 Go 实现的 PostgreSQL 驱动与工具包。其底层驱动接口注重性能,并支持 LISTEN / NOTIFY、COPY 等 PostgreSQL 专有功能;同时提供 database/sql 适配器,便于兼容已有代码。

工具包部分包含协议解析、PostgreSQL 与 Go 之间的类型映射等功能,可用于开发替代驱动、代理、负载均衡器或逻辑复制客户端。并发场景下可使用内置的连接池 pgxpool。

项目支持约 70 种 PostgreSQL 数据类型,提供语句预编译与缓存、批量查询、自定义类型的二进制编解码以及追踪和日志扩展点。需要 Go 1.25 及以上版本与 PostgreSQL 14 及以上版本。

核心功能

  • 01支持约 70 种 PostgreSQL 数据类型并映射到 Go 类型
  • 02自动语句预编译与缓存,支持批量查询
  • 03支持 COPY 协议,适合大批量数据导入
  • 04支持 LISTEN / NOTIFY 与大对象
  • 05连接池提供连接后钩子,可执行自定义初始化
  • 06提供追踪与日志接口,并兼容 database/sql

适用场景

  • 构建直接连接 PostgreSQL 并需要其专有功能的 Go 服务
  • 使用 COPY 协议批量导入大规模数据
  • 开发 PostgreSQL 代理、连接池或逻辑复制客户端
  • 在依赖 database/sql 的现有项目中使用 pgx

快速上手

  1. 1

    使用 Go 安装 pgx v5 模块

    go get github.com/jackc/pgx/v5
  2. 2

    编写程序,通过 pgx.Connect 使用 DATABASE_URL 环境变量连接数据库并执行查询

使用前须知

  • 需要连接一个 PostgreSQL 服务器(支持 14 及以上版本)。
  • 需要 Go 1.25 或更高版本。

收录于专题

标签

常见问题

pgx 是什么?
纯 Go 实现的 PostgreSQL 驱动与工具包,支持 LISTEN/NOTIFY、COPY 等 PostgreSQL 专有功能。 pgx 是一个纯 Go 实现的 PostgreSQL 驱动与工具包。其底层驱动接口注重性能,并支持 LISTEN / NOTIFY、COPY 等 PostgreSQL 专有功能;同时提供 database/sql 适配器,便于兼容已有代码。
pgx 可以免费使用吗?用的什么许可证?
pgx 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
pgx 还在维护吗?
活跃维护中。pgx 最近一次提交是在 2026年11月5日。
pgx 适合用来做什么?
构建直接连接 PostgreSQL 并需要其专有功能的 Go 服务 使用 COPY 协议批量导入大规模数据 开发 PostgreSQL 代理、连接池或逻辑复制客户端 在依赖 database/sql 的现有项目中使用 pgx
pgx 怎么安装和运行?
使用 Go 安装 pgx v5 模块: go get github.com/jackc/pgx/v5 编写程序,通过 pgx.Connect 使用 DATABASE_URL 环境变量连接数据库并执行查询
在哪里获取 pgx?
源代码和安装说明在 GitHub 上:https://github.com/jackc/pgx

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目