postgresql - SPI 与 PLPGSQL 的性能对比

标签 postgresql

如果我使用服务器编程接口(interface) (SPI) 用 C 语言重写我所有的 PLPGSQL 函数(对于 Postgres 9.6),我可以获得多少百分比的性能提升?

我不包括将数据从服务器传送到客户端的时间(网络时间),我只是在谈论在服务器端获取数据并在将数据包发送到网络之前对其进行格式化。我知道这完全取决于应用程序,但如果我们以网络邮件后端或 StackOverflow 之类的网站为例,我会在性能上获得多少 yield ?值得吗?

最佳答案

PL/pgSQL 的性能不是很好,因此使用 C 函数肯定比使用 PL/pgSQL 函数更快。在 PL/pgSQL 本身中完成的处理越多,性能提升就越明显。如果大部分 PL/pgSQL 时间花在 SQL 查询上,您将看不到很大的性能提升。

因此,是否值得付出努力取决于个人用例。
编写 C 函数肯定比编写 PL/pgSQL 函数更难。

关于postgresql - SPI 与 PLPGSQL 的性能对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41584244/

相关文章:

postgresql - 如何按日期顺序选择总计为任意数量的记录?

mysql - Doctrine2 中的地理位置查询

sql - postgreSQL - 计算虚拟表中的数量

javascript - Sequelize : how to update with associations?

postgresql - 使用 Chapel CDO 从 Postgres 检索数组

postgresql - plpgsql动态插入以表名作为变量和where子句中的数组变量

ruby - 重构以减少重复

sql - 删除 Postgresql 中的连续重复行

hibernate - 使用 JPA 和 PostgreSQL 9.0 分组

javascript - 如何在 Knex.js 中正确设置 `updatedAt` 时间戳?