如果使用服务器编程接口(SPI)用C语言重写所有PLPGSQL函数(对于Postgres 9.6),我可以获得多大比例的性能提升?
我没有包括从服务器向客户端传送数据的时间(网络时间),我只是谈论在服务器端获取数据并在将数据包发送到网络之前对其进行格式化。我知道这一切都取决于应用程序,但如果我们以Webmail的后端或StackOverflow等网站为例,我将获得多少收益?值得吗?
答案 0 :(得分:2)
PL / pgSQL性能不高,因此使用C函数比使用PL / pgSQL函数更快。 PL / pgSQL本身的处理越多,性能增益就越显着。如果大多数PL / pgSQL时间花费在SQL查询中,那么你将不会看到很大的性能提升。
因此,如果值得付出努力,这取决于个人用例 编写C函数肯定比PL / pgSQL函数更难。