我正在编写一个程序来运行大量计算并将结果输出到PostgreSQL中。
我的平台是Windows Sever 2008,PostgreSQL10。我的程序是用C编写的。
结果将逐组产生,每组结束将创建一个额外的线程来写入输出。
现在,由于输出线程是一个一个地创建的,因此可能会同时创建两个或多个SQL输入命令,或者在新的调用该函数时正在处理前一个。
所以我的问题是:
(1)如果一个线程正在SQL处理中,而另一个线程称为PQexec(PGconn *conn, const char *query)
,会互相影响吗?
(2)如果我应用不同的PGconn
怎么办?会加快速度吗?
答案 0 :(得分:2)
如果在执行SQL语句的过程中尝试在连接上调用PQexec
,则会导致协议冲突。那只是行不通。
如果并行使用多个数据库连接,则可以肯定会加快处理速度-并发事务是PostgreSQL设计的目的。