I'm playing around with PLV8 to write trigger and stored procedures for PostgreSQL. So far I don't really see disadvantages compared to PLPGSQL. Especially if working with JSON it seems even smarter then PLPGSQL. Are there known disadvantages or limitations if using PLV8? Can PLV8 be a full replacement for PLPGSQL? It would be great if somebody could share his experience on this.
问问题
5007 次
2 回答
16
PLV8 的优缺点与 PLPerl、PLPython 和其他 PL 语言的优缺点相同。
- 它没有与 PostgreSQL 引擎集成 - 处理 SQL 语句的结果可能会更慢。PLpgSQL 完全集成到 PostgreSQL 引擎中。
- SQL 未集成到语言中 - 无法对嵌入式 SQL 进行静态分析。使用 PLpgSQL 是可能的 - 请参阅 plpgsql_check。
- 可以进行更昂贵的数学计算,字符串和数组的操作通常比 PLpgSQL 更快。
- 可以使用为语言开发的库 - Perl - CPAN,...
- JavaScript、Perl、Python 是通用语言——所以任何通用任务都可以在那里很好地实现。
- PLpgSQL 是一种成熟的语言,专为在关系数据库环境中处理数据而设计。几乎所有开发人员处理数据所需的数据都在那里。对结果的迭代,从数据库中获取数据需要更少的可读代码。
PLpgSQL 是通过 SQL 语言进行数据操作的完美语言。其他 PL 更适合其他任何事情 - IO、网络、特殊格式、缓慢的数字计算……
于 2015-06-18T21:02:48.367 回答
5
更新:因为 PLV8 2.3.3 (2018-04-27) 支持终止信号并且工作得很好。缺点 - 你必须自己构建它。我们没有将代码迁移到 python,因为过去 3 年我们没有遇到任何问题。
有点晚了,但你不能杀死当前运行 plv8 脚本的查询,唯一的方法是重新启动整个 postgresql 服务器。这是一个巨大的劣势,我们的团队正在考虑迁移到 PLpgPython。
于 2017-06-26T21:35:11.157 回答