一度に1つずつ保管してください。あなたが特定の問題の周囲に何か他のものをデザインしてはなりません。
SQLは宣言型言語です。つまり、「Xに一致するすべてのレコードを指定してください」と指定すると、dbサーバーには通知されません。howしたがって、数百万ものレコードがある場合でも、DBサーバーがこれを迅速に実行できるようにするには、さまざまな方法があります。さらに、RDBMSは何年もの経験を経てこの問題に最適化されているため、PostgreSQLのようなシステムに勝ることはありません。
彼らが言うように、早すぎる最適化はすべての悪の根源です。
次に、PostgreSQLがテーブルを通過して結果を得る2つの方法を見ていきましょう。
最初のスキャンは一連のページを繰り返し、各ページで値をスキャンしてレコードを返します。これは非常に小さなテーブルの他のどの方法よりも優れています。大きなテーブルでは遅いです。複雑さはO(n)です.nは任意の数のレコードのテーブルのサイズです。
したがって、2番目のアプローチはインデックススキャンです。ここで、PostgreSQLはレコードを見つけるためにb-treeインデックスで一連のページを走査します。各レコードを見つけるために複雑さはO(log(n))です。
内部的にPostgreSQLは、ローを固定サイズのバッチでページとして格納します。それはすでにあなたのためにこの問題を解決しています。同じことをしようとすると、レコードのバッチ内にレコードのバッチがあります。これは通常、悪いもののレシピです。
あなたが何を求めているのか分かりません。なぜエントリを繰り返し処理したいのですか?データベースは検索に優れています。それが彼らの目的です。 –
@DanielRoseman確かに同じ操作を何回もやりたいのは悪い考えですか? – techydesigner
*何の操作ですか? –