適度に大きい (「大きい」のローカル定義の場合) が、比較的安定したテーブルがあるとします。
今、テーブル全体の内容の何らかの (任意の種類の) チェックサムを取得したいと考えています。
素朴なアプローチは、各行のすべての列の連結のチェックサム (MD5 など) を取得して、テーブル全体を調べてから、おそらくそれらを連結してその MD5sum を取得することです。
クライアント側からは、列の値を MD5 合計ルーチンに徐々に追加し、値を徐々に変更することで、少し最適化される可能性があります。
この理由は、将来のある時点で、データベースに再接続し、他のユーザーがテーブルを変更していないことを確認するためです。これには、INSERT、UPDATE、および DELETE が含まれます。
特定のテーブルに変更が発生したかどうかを判断するより良い方法はありますか? または、より効率的/高速な方法ですか?
更新/説明:
- テーブル自体を変更することはできません/許可されていません (たとえば、「last-updated-at」列やトリガーなどを追加するなど)。
(これは Postgres 用です。役立つ場合。トランザクション ジャーナルなどを突っ込むのは避けたいと思いますが、そうする方法があれば、私はその考えに反対しません。)