PostgreSQL?中扩展和插件的使用

2mbi3lxu  于 2023-01-13  发布在  PostgreSQL
关注(0)|答案(1)|浏览(119)

我试着去理解PostgreSQL中的扩展和插件之间的功能差异。在我有限的理解下,我发现扩展是用源代码构建的,并使用Create extension extension_name command的控制文件加载。

# extension_name
comment = 'extension purpose'
default_version = '1.0'
module_pathname = '$libdir/extension_name'
relocatable = true

而插件,我们可以建立相同的扩展,但加载库修改postgresql.conf文件如下.

shared_preload_libraries = '$libdir/plugin_name'    # (change requires restart)

请纠正我以上的理解,如果我错了。我想知道我们如何决定该功能应该作为扩展或插件在PostgreSQL中?我找不到很多关于插件在互联网上,有什么参考我可以用来更好地理解它?

3bygqnnd

3bygqnnd1#

如果扩展在被会话中的用户“调用”之前需要改变服务器的行为,那么它需要被预加载。例如pg_stat_statement收集所有正在运行的语句的统计信息,即使在会话中也从未检查过同名视图。所以要做到这一点,就需要预先加载。不需要预先加载就能完成任务的扩展通常会这样做--当在每个会话中第一次调用所需特征时,它们将被加载。

相关问题