plv8的缺点或局限?

时间:2015-06-17 13:41:55

标签: postgresql plpgsql plv8

我正在玩PLV8来为PostgreSQL编写触发器和存储过程。到目前为止,与PLPGSQL相比,我并没有真正看到它的缺点。特别是如果使用JSON,它似乎比PLPGSQL更聪明。如果使用PLV8,是否存在已知的缺点或限制? PLV8可以完全替代PLPGSQL吗?如果有人可以分享他的经验,那就太好了。

2 个答案:

答案 0 :(得分:10)

PLV8的优点和缺点与PLPerl,PLPython和其他PL语言的优点和缺点相同。

  • 它没有与PostgreSQL引擎集成 - 处理SQL语句的结果可能会变慢。 PLpgSQL完全集成到PostgreSQL引擎。
  • SQL未集成到语言中 - 无法对嵌入式SQL进行静态分析。可以使用PLpgSQL - 请参阅plpgsql_check。
  • 可以做更好的昂贵的数学计算,使用字符串和数组的操作通常比PLpgSQL更快。
  • 可以使用为语言开发的库 - Perl - CPAN,...
  • JavaScript,Perl,Python是通用语言 - 所以任何通用任务都可以很好地实现。
  • PLpgSQL是一种成熟的语言,用于在关系数据库环境中处理数据。几乎所有开发人员对数据处理数据的需求都在那里。结果的迭代,从数据库获取数据需要更少的可读代码。

PLpgSQL是通过SQL语言进行数据操作的完美语言。其他PL更适合其他任何东西 - IO,网络,特殊格式,慢速数值计算,......

答案 1 :(得分:1)

更新:由于PLV8 2.3.3(2018-04-27)支持终止信号并且工作得很好。缺点 - 你必须自己构建它。我们没有将代码迁移到python,因为我们在过去3年没有遇到任何问题。

有点晚了,但你不能 kill查询当前运行的plv8脚本,唯一的办法就是重启整个postgresql服务器。这是一个巨大的劣势,我们的团队正在考虑迁移到PLpgPython。