C++ 使用pqxx将数据插入postgres的最快方法是什么

C++ 使用pqxx将数据插入postgres的最快方法是什么,c++,postgresql,libpqxx,C++,Postgresql,Libpqxx,我使用的是代码> pqxx < /Case>作为API,从C++代码中访问 PASGRES。我试图插入大量数据,但发现性能不够好。我已经尝试了好几件事,但都没有达到我所需要的效果 我一直在尝试使用pqxx::pipeline来获取asyn插入,但如果这样,我可以等到所有插入结束后才提交事务,在这种情况下,如果进程在提交之前崩溃,我就有丢失大量数据的风险。或者我可以偶尔提交(比如每5分钟一次),在这种情况下,我每5分钟就有一个阻塞呼叫,这需要相当长的时间 有没有办法在没有事务的情况下执行此操作,或

我使用的是代码> pqxx < /Case>作为API,从C++代码中访问<代码> PASGRES。我试图插入大量数据,但发现性能不够好。我已经尝试了好几件事,但都没有达到我所需要的效果

我一直在尝试使用
pqxx::pipeline
来获取asyn插入,但如果这样,我可以等到所有插入结束后才提交事务,在这种情况下,如果进程在提交之前崩溃,我就有丢失大量数据的风险。或者我可以偶尔提交(比如每5分钟一次),在这种情况下,我每5分钟就有一个阻塞呼叫,这需要相当长的时间


有没有办法在没有事务的情况下执行此操作,或者对我的事务进行异步提交?

请参阅。另外,批量插入数据的最快方法是通过
COPY
,pqxx的
tablewriter
类可能会对此有所帮助。引用文档:例如,要在默认情况相反时异步提交单个多状态事务,请在事务中发出SET LOCAL synchronous_commit to OFF。调用“将本地同步提交设置为关闭“因为事务中的第一条语句似乎根本不会改变性能。我说的不对吗?性能瓶颈似乎更可能出现在其他地方。以Mb/s为单位的数据吞吐量是多少?它与您的期望值和硬件容量有多大的差异?在插入过程中,服务器/客户机系统在cpu/网络/磁盘方面做了什么?我每秒插入4000行,相当于大约每秒1MB。这一切都在一台机器上,因此网络延迟不适用。