Postgresql plv8的缺点还是局限性?

Postgresql plv8的缺点还是局限性?,postgresql,plpgsql,plv8,Postgresql,Plpgsql,Plv8,我正在使用PLV8为PostgreSQL编写触发器和存储过程。到目前为止,我还没有看到与PLPGSQL相比的缺点。特别是如果使用JSON,它看起来比PLPGSQL更智能。如果使用PLV8,是否存在已知的缺点或限制?PLV8能否完全替代PLPGSQL?如果有人能分享他的经验,那就太好了。PLV8的优点和缺点与PLPerl、PLPython和其他PL语言的优点和缺点相同 它没有与PostgreSQL引擎集成-处理SQL语句的结果可能会更慢。PLpgSQL与PostgreSQL引擎完全集成 SQL未

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

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

  • 它没有与PostgreSQL引擎集成-处理SQL语句的结果可能会更慢。PLpgSQL与PostgreSQL引擎完全集成
  • SQL未集成到语言中-无法对嵌入式SQL进行静态分析。可以使用PLpgSQL-请参阅PLpgSQL\u检查
  • 可以更好地进行昂贵的数学计算,使用字符串和数组的操作通常比PLpgSQL更快
  • 可以使用为语言开发的库-Perl-CPAN
  • JavaScript、Perl和Python都是通用语言,因此任何通用任务都可以在那里很好地实现
  • PLpgSQL是一种成熟的语言,专为在关系数据库环境中处理数据而设计。几乎所有开发人员需要的数据都在那里。迭代的结果是,从数据库中获取数据需要更少的可读代码
PLpgSQL是通过SQL语言进行数据操作的完美语言。其他PL更适用于其他任何情况—IO、网络、特殊格式、缓慢的数值计算等更新:因为PLV8 2.3.3(2018-04-27)支持终止信号,并且工作得非常好。缺点-你必须自己建造它。我们没有将代码迁移到python,因为在过去3年中我们没有遇到任何问题


稍微晚了一点,但是您不能杀死当前运行plv8脚本的查询,唯一的方法是重新启动整个postgresql服务器。这是一个巨大的缺点,我们的团队正在考虑迁移到PLpgPython。

我能看到的唯一(非常小的)缺点是:您需要为创建的每个数据库安装它。默认情况下,PL/pgSQL始终可用。但是只有你才能决定它是否是一个完全的替代品:因为这完全取决于你对语言的要求。谢谢。我问这个问题是因为我想知道是否有一些问题我目前没有考虑。如果我今天决定在一个新项目中使用PLV8,并且在3个月后我必须了解它的局限性,那将是不好的。
plpgsql
以本机方式使用SQL数据类型,这是其他PL所没有的易用性优势。如果您计划使用复杂的数据类型,如
hstore
ltree
,则必须在plv8中处理它们的文本表示。但它支持数组、复合类型、集合等,。。。这已经很好了。哦,谢谢,这是一个可能的观点!上述分析是我不知道的一点,谢谢Pavel。关于性能。。同时,我阅读了一些文章,得到的印象是,在“正常”情况下(例如,典型的电子商务门户),性能差异非常小。但可以肯定的是,有一些特殊情况。所以,再次感谢你!性能—取决于—数据库大小、查询复杂性、返回结果集的大小。。。