c/c++语言开发共享在使用C函数扩展PostgreSQL时实现高性能事务

我的目标是实现可用于将数据块从数据库复制到C函数的最高性能,以便作为查询结果进行处理和返回。

我是PostgreSQL的新手,我目前正在研究移动数据的可能方法。 具体来说,我正在寻找与PostgreSQL特别相关的细微差别或关键词来快速移动大数据。

注意: 我的最终目标是速度,所以我愿意接受我提出的确切问题之外的答案,只要它获得大的性能结果。 例如,我遇到了COPY关键字(仅限PostgreSQL),它可以快速地将数据从表格移动到文件中; 反之亦然。 我试图远离数据库外部的处理,但如果它提供的性能改进超出了外部处理的明显缺点,那么就这样吧。

    听起来您可能希望使用服务器编程接口(SPI)将存储过程实现为在PostgreSQL后端内运行的C语言函数 。

    使用SPI_connect设置SPI。

    现在SPI_prepare_cursor一个查询,然后SPI_cursor_open它。 SPI_cursor_fetch来自它的行和SPI_cursor_close它完成后。 请注意, SPI_cursor_fetch允许您获取批量行。

    SPI_finish完成后清理。

    您可以在生成结果行时将结果行返回到tuplestore,从而无需在内存中构建整个表。 请参阅PostgreSQL源代码中任何set-returns函数中的示例。 您可能还想查看SPI_returntuple辅助函数。

    另请参见: C语言函数和扩展SQL 。

    如果感兴趣的是最大速度,您的客户端可能希望通过libpqtypes使用libpq二进制协议,以便它以最小的开销接收服务器端SPI使用过程产生的数据。

      以上就是c/c++开发分享在使用C函数扩展PostgreSQL时实现高性能事务相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560098.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐