そのため、PostgreSQL を使用しているときに次のような動作を確認しました。
次のようなテーブルがあります。(id INTEGER ..., msg VARCHAR(2000))
次に、2 つのプログラムを実行するA
とB
、まったく同じことを実行します。つまり、20000 回の挿入と 20000 回の検索 (ID に基づく) を実行します。唯一の違いは、プログラムA
が 2000 文字を含むメッセージを挿入するのに対しB
、最大 10 文字を含むメッセージを挿入することです。
問題は、すべての挿入と取得の平均時間は、「より大きな」データを追加しているため、実際には意味をなさないA
よりも常に約 15 ミリ秒短いことです。B
A
なぜこれが起こっているのかについてのアイデアやヒントはありますか? システムのすべての文字を使用していない場合msg
、残りのスペースを他の目的に使用するためmsg
、システムがいっぱいになるとシステムが高速になる可能性がありますか?
@Dan Bracuk のコメントに基づく。私はさまざまなイベントで時間を節約し、次のことが起こることに気付きました。プログラムA
では挿入が非常に高速であることがかなりの回数ありますが、プログラムでB
はこれは決して当てはまりません。そのため、平均しA
てよりも高速ですB
が、この動作を説明することもできません.