↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 配置参数 / 客户端连接默认值

CONFIGURATION PARAMETER客户端连接默认值 / 共享库预载入

jit_provider

设置要使用的 JIT 提供程序。

JIT provider to use.

字符串 重启生效 引入 11 现存至 20 devel 0 次默认值变更

类型
字符串string
上下文
重启生效只能在服务器启动时设置,修改后需要重启
默认值
llvmjit
引入版本
11
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 432bb9e04d

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

llvmjit 11 – 20

已记录的默认值在 PostgreSQL 11–20 之间未变。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.11 客户端连接默认值 本站手册 官方原文

这个变量是要被使用的JIT提供者库的名称(见第 30.4.2 节)。默认是llvmjit。这个参数只能在服务器启动时设置。

如果这个变量被设置为一个不存在的库,JIT将不可用,但是也不会发生错误。这种特性允许在主PostgreSQL包之外单独安装JIT支持。

机制详解

jit_provider:设置要使用的 JIT 提供程序。指定的提供程序实现 PostgreSQL JIT,且必须二进制兼容;更换提供程序需要重启服务器。

jit_provider 属于 POSTMASTER 上下文:PostgreSQL 在服务器启动时读取它,重新加载配置或会话 SET 都不能使新值生效。

库发现与预加载会和已安装二进制版本、扩展控制文件、服务器或后端启动,以及模块自身 GUC 相互作用。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    不要把更换 jit_provider 当作常规调优;软件包支持时保持 llvmjit,并通过 jit 及成本阈值控制是否执行 JIT。

  • OLAP分析与批处理

    只有在代表性编译时间、执行速度、内存、软件包兼容与重启测试后才评估提供程序;提供程序选择次于 JIT 阈值。

  • 小规格低配实例与开发机

    保持软件包提供的实现,通常应控制是否使用 JIT 而非替换实现;提供程序缺失可能破坏启动或 JIT 执行。

常见问题

  • 期待重新加载或 SET 激活 jit_provider,而它实际需要受控重启服务器。
  • 指定缺失或 ABI 不兼容模块,导致连接失败或服务器无法启动。
  • 把搜索或预加载路径当作无害配置,忽略它决定服务器信任哪些本地代码。
  • 没有回滚计划及客户端或运维兼容测试,就全局修改 jit_provider。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 11 ← 10 新增此参数

    PostgreSQL 11 起可用

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
11 llvmjit — 重启生效 字符串 — — —
12 llvmjit — 重启生效 字符串 — — —
13 llvmjit — 重启生效 字符串 — — —
14 llvmjit — 重启生效 字符串 — — —
15 llvmjit — 重启生效 字符串 — — —
16 llvmjit — 重启生效 字符串 — — —
17 llvmjit — 重启生效 字符串 — — —
18 llvmjit — 重启生效 字符串 — — —
19 llvmjit — 重启生效 字符串 — — —
20 沿用 llvmjit — 重启生效 字符串 — — —

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Client Connection Defaults 客户端连接默认值 4 个 ↗
共享库预载入 4
jit_provider 字符串 重启生效 llvmjit —
设置要使用的 JIT 提供程序。 现存
local_preload_libraries 字符串 会话 空字符串 9.51 次
列出每个后端可由非特权用户预加载的共享库。 现存
session_preload_libraries 字符串 会话(超级用户) 空字符串 —
列出每个后端在会话开始时预加载的共享库。 现存
shared_preload_libraries 字符串 重启生效 空字符串 —
列出服务器启动时预加载的共享库。 现存