これについて高低を検索しましたが、決定的な答えを見つけることができませんでした。私はアプリケーションの設計を始めたばかりで、データベースに Postgresql を使用し、サーバーに C を使用することにしました。ただし、一部の初期テストでは、紛らわしい数値が示されています。テキスト文字列を介してデータベースにアクセスするのが最速の方法のように思えますが、これは直感に反するように思えます。確かに、データベースは int と float をバイナリとして内部的に保存しており、それらを変換してテキストとして表示する必要があります。使用するには、バイナリに変換する必要があります。より速いルートは、すべてをバイナリのままにしておくことだと思われますが、今日まで、この利点を示すためにバイナリアクセスを取得できないようです。
これは、私が見ているものを示すために作成した簡単なテストケースです(スキーマ+コード)
そして、私はこのようなタイミングを見ています:
反復 0 を開始しています... 反復 0: PQparamExec を介して 35 秒で 50000 のバイナリ レコードをフェッチしました 反復 0: PQexecf を介して 34 秒で 50000 のバイナリ レコードをフェッチしました 反復 0: PQexec を介して 25 秒で 50000 のテキスト レコードをフェッチしました
追加の反復は、そのパターンを多かれ少なかれ繰り返すだけです。libpq を直接使用して同様の結果を得ることも試みましたが、このテスト ケースには移植しませんでした。
これはあなたの経験と一致していますか、それとも私はどこかで愚かなだけですか?
ありがとう!