3

私は MySQL Connector/NET を使用しており、テーブルに変更があるかどうかを確認したいのですが、通常はタイマーを使用しており、タイマーが作動するたびに新しい変更を確認します。

しかし、タイマーは良い解決策ではありません。ソフトウェアで SELECT コマンドを実行する必要があるたびに、多くの時間とリソースが浪費されます。新しい変更をチェックするタイマーの代わりにイベントを使用したいと考えています。

SOCKSか何かを使わなければならないと誰かが私に言った。誰でも何か考えがありますか?

4

1 に答える 1

2

aleroot が指摘したように、MSSQL を使用している場合、SqlDependency はまさに探している答えです。しかし、MySQL を使用しているため、利用できるオプションはあまりありません。

WebSocket と呼ばれる概念が HTML 5 で導入されました。これは PUSH テクノロジの一種です。あなたのシナリオで使用できるかどうかはわかりませんが、http: //net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/にある記事を参照してください。

残りのオプションは、データベースを定期的にポーリングして、データの変更を確認することです。ポーリングを利用しながらサーバーの負荷を軽減するための提案を以下に示します。

1) データが定期的に挿入されていない場合は、(データ全体を取得する代わりに) クエリを使用して行数を確認し、現在および以前の数に変更がある場合にのみデータを取得できます。

2)データに変更があるたびにトリガーを使用して更新される別のテーブルを利用できます。アプリケーションは定期的に新しいテーブルをクエリして、親テーブルでデータが変更されたかどうかを識別できます。

即興で解決策を考え、それを共有してください。

于 2012-04-14T11:39:23.343 に答える