【发布时间】:2021-03-24 06:28:52
【问题描述】:
我正在阅读 SPI https://www.postgresql.org/docs/13/spi.html 的文档,我有几个问题:
- 有什么方法可以在 C 中使用多线程连接到 Postgres(通过 SPI 或 Libpq)并从一个表中读取数据? (例如,一个线程从 1 到 100 行读取数据,第二个从 101 到 200 行等)。
- 我知道 Postgres 可以使用工作程序(例如,用于 SELECT),但是 SPI 将如何对此做出反应(如果我发送命令“select * from table_name”)
【问题讨论】:
-
SQL 语言和 PostGreSQL 支持 pagination using
LIMITandOFFSET... 因此将查询的不同子集路由到不同线程应该很容易。我不确定它如何(如果)提高性能,这取决于具体的用例。 -
您希望执行更快还是有其他原因进行 MT?
-
是的,我想处理大表(比如 100 万行),并且我想更快地执行。
标签: c postgresql multithreading