pgx —— PostgreSQL 的纯 Go 驱动程序和工具包
pgx 是用于 PostgreSQL 的纯 Go 驱动程序和工具包。
pgx 驱动程序是一个低级、高性能的接口,它 expose 了 PostgreSQL 特有的功能,如 LISTEN / NOTIFY 和 COPY。它还包括一个标准database/sql
接口适配器。
工具包组件是一组相关的软件包,用于实现 PostgreSQL 的功能,如解析线协议和 PostgreSQL 与 Go 之间的类型映射。这些底层软件包可用于实现替代驱动程序、代理、负载平衡器、逻辑复制客户端等。
用法示例:
package main import ( "context" "fmt" "os" "github.com/jackc/pgx/v5" ) func main() { // urlExample := "postgres://username:password@localhost:5432/database_name" conn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL")) if err != nil { fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err) os.Exit(1) } defer conn.Close(context.Background()) var name string var weight int64 err = conn.QueryRow(context.Background(), "select name, weight from widgets where id=$1", 42).Scan(&name, &weight) if err != nil { fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err) os.Exit(1) } fmt.Println(name, weight) }
特性:
- 支持大约 70 种不同的 PostgreSQL 类型
- 自动语句准备和缓存
- 批量查询
- 单次往返查询方式
- 完整的 TLS 连接控制
- 对自定义类型的二进制格式支持(允许更快的编码/解码)
COPY
协议支持,实现更快的批量数据加载- Tracing 和 logging 支持
- 带有 after-connect hook 的连接池,用于任意连接设置
LISTEN
/NOTIFY
- 将 PostgreSQL 数组转换为整数、浮点数和字符串的 Go 切片映射
hstore
支持json
和jsonb
支持- 将
inet
和cidr
PostgreSQL 类型映射为netip.Addr
和netip.Prefix
- Large object 支持
- NULL 映射为 pointer to pointer
- 支持自定义类型的
database/sql.Scanner
和database/sql/driver.Valuer
接口 - 通知响应处理
- 使用保存点模拟嵌套事务

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 初探分布式链路追踪
本篇文章,主要介绍应用如何正确使用日志系统,帮助用户从依赖、输出、清理、问题排查、报警等各方面全面掌握。 可观测性 可观察性不单是一套理论框架,而且并不强制具体的技术规格。其核心在于鼓励团队内化可观察性的理念,并确保由研发人员构建的应用程序具备可观察性。在学术领域中,尽管“可观测性”这一术语是近年来从控制理论中引进的新词,但实际上,它在计算机科学领域已有深厚的实践基础。学者们通常会把可观测性细化为三个更具体的研究方向:事件日志、链路追踪和聚合度量。这三个领域虽然各有侧重点,但并非完全孤立,它们之间存在着天然的交集与互补性。 日志(Logging),展现的是应用运行而产生的事件或者程序在执行的过程中间产生的一些日志,可以详细解释系统的运行状态,但是存储和查询需要消耗大量的资源。所以往往使用过滤器减少数据量。 度量(Metrics),是一种聚合数值,存储空间很小,可以观察系统的状态和趋势,但对于问题定位缺乏细节展示。这个时候使用等高线指标等多维数据结构来增强对于细节的表现力。例如统计一个服务的 TBS 的正确率、成功率、流量等,这是常见的针对单个指标或者某一个数据库的。 追踪(Tracin...
- 下一篇
微软为 Windows 11 引入原生 Sudo 命令支持
网曝微软正在 Windows 11 中测试类似 macOS 或 Linux 的原生 Sudo 命令支持。Windows Latest 报道称,Windows Update 服务器上日前出现了一个泄露的 Windows Server 预览版,包含了一些正在开发的新功能,其中就有 Windows "sudo"命令的新设置。 Sudo“superuser do”命令将作为开发人员设置的一部分出现在 Windows 11 中。它可能允许用户管理需要管理权限的设置,例如卸载应用程序、更改系统设置或其他与开发人员相关的设置。用户将可在 Windows 11 的开发者设置中找到 Sudo 的开关选项。 Superuser do (或 sudo) 是一种 Linux 控制台程序,允许低权限用户以提升的权限(通常是 root)执行命令。该命令提高了 Linux 的安全性,因为服务器可以在低权限账户下正常使用,同时还允许用户在运行特定命令时根据需要提升权限。 使用 Sudo 命令前提是需要开启开发者模式,但目前这一功能在泄露的预览版中尚未启用。 用户可以通过设置使用 Sudo 运行命令的偏好来自定义 Su...
相关文章
文章评论
共有0条评论来说两句吧...