【问题标题】:Uses of an extension and a Plugin in PostgreSQL?在 PostgreSQL 中使用扩展和插件?
【发布时间】:2023-01-10 03:04:24
【问题描述】:

我试图了解 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 中的扩展还是插件?我在互联网上找不到太多关于插件的信息,有什么参考资料可以用来更好地理解它吗?

【问题讨论】:

标签: postgresql


【解决方案1】:

如果扩展需要在该会话中被用户“调用”之前更改服务器的行为,则需要预加载它。例如 pg_stat_statement 收集所有正在运行的语句的统计信息,即使在自己从未检查过同名视图的会话中也是如此,因此需要预加载才能做到这一点。不需要预加载就可以完成工作的扩展通常会这样做——当在每个会话中首次调用所需的功能时,它们就会被加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 2015-08-02
    • 2015-03-31
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    相关资源
    最近更新 更多