我将要使用C库连接和使用PostgreSQL数据库,我想知道ODBC和Libpq的优缺点。据我所知,libpq似乎更快,但我无法获得任何明确的答案或基准。
此外,是否还有其他库可能比ODBC/Libpq更好。
最佳答案
如果您想要一个标准适配器,该适配器可以为不同的数据库提供类似的API,则ODBC很有用。我个人认为这是一个糟糕的API,但是它已被广泛理解并有据可查。
libpq更直接地与PostgreSQL对话。使用它可以获得更好的性能,但可能不足以对大多数应用程序产生任何影响,这些应用程序花费时间在查询执行,网络延迟等上,而不是在客户端库中。
较新的psqlODBC版本建立在libpq上,并用作libpq的ODBC包装器。
还有libdbi,它提供的API比ODBC少。
为了完整起见,还有服务器后端SPI,可由用C编写并加载到PostgreSQL服务器的用户定义函数使用。在服务器扩展和功能之外没有用。
哦,还有ecpg。不要使用ecpg。它是一种超传统语言集成的SQL工具,主要用于简化从某些其他数据库引擎的移植。不要使用ecpg。真的。
对于C++,有QtSQL接口(interface)(通常对于Qt,它是可怕且痛苦的限制,不要使用它)和libpq++(可以,但基本上不需要维护)。
我个人直接编写libpq代码,但这是因为我正在开发通常会进入PostgreSQL本身的代码。如果您无法想象除了PostgreSQL之外还想定位其他任何东西,那么您可能想编写libpq代码。否则,可能将ODBC与psqlODBC一起使用。
关于c - ODBC v Libpq : C library for PostgreSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36145000/