1

私が作成しているアプリケーションでは、新しいデータがデータベースの複数のテーブルに挿入されたときを識別できる必要があります。

問題は 2 つあります。このデータは 1 分間に何度も非常に大規模なデータベースに挿入される場合があり (また、需要やデータベースのポーリングの問題に敏感である必要があります)、このデータを作成するアプリケーションを制御することはできません (これまでのところ、私が知っているように、postgres 内で利用可能な通知/リッスン機能は、まさにこの種のタスクには使用できません*)。

良い戦略に関する提案は大歓迎です。

*このデータを制御しているアプリケーションは、通知/リッスン機能自体を使用していると思いますが、外部で使用する「チャネル」が何であるか、およびラッチできるかどうかを知る方法 (可能な場合) はわかりません。それに。

4

1 に答える 1

1

一般に、新しさを判断するために使用できるテーブルが必要であり、いくつかのアプローチがあります。

タイムスタンプ列を使用すると日付を使用できますが、データベースの外部に日付を保存するというアプリケーションの問題がまだあり、データベースにないデータは別の領域のデータを管理することを意味します。うん。

テーブルごとに最終更新/挿入タイムスタンプを格納した追跡テーブルは、あなたが望むものを与えることができます。トリガーを使用して、最後の DML タイムスタンプを維持する必要があります。

使用したくない解決策は、一意性以外の目的で nextval から取得されるシリアル (整数) ID です。標準/よくある間違いは、シリアルキーが連続している (そうではない) または単調 (そうではない) であると想定することです。

于 2013-05-20T02:23:20.413 に答える