找了高低找这个,一直没有找到明确的答案。我刚刚开始构建应用程序,我们决定将 Postgresql 用于我们的数据库,将 C 用于服务器。然而,一些初步测试显示了一些令人困惑的数字。似乎通过文本字符串访问数据库是最快的方法,这对我来说似乎违反直觉。当然,数据库在内部将整数和浮点数存储为二进制,并且必须将它们转换为文本,然后我必须将其转换回二进制才能使用。似乎更快的方法是将所有内容都保留为二进制文件,但到目前为止,我似乎无法获得二进制访问权限来显示这种好处。
这是我构建的一个简单测试用例,用于显示我所看到的(模式 + 代码)
我看到这样的时间安排:
开始迭代 0... 迭代 0:在 35 秒内通过 PQparamExec 获取 50000 条二进制记录 迭代 0:在 34 秒内通过 PQexecf 获取 50000 条二进制记录 迭代 0:在 25 秒内通过 PQexec 获取 50000 条文本记录
额外的迭代只是或多或少地重复该模式。我也尝试直接使用 libpq 得到类似的结果,但没有将它们移植到这个测试用例中。
这符合您的经验,还是我只是在某个地方愚蠢?
谢谢!