1

MySQL データベースを使用するオンライン ショッピング カートがあり、Access 2007 を使用してリンク テーブル経由でデータベースに接続し、さまざまなカスタム レポートを作成したいと考えています。書き込みアクセスは必要ありません。

現在、古い MySQL データベースでテストを行っており、開いたままのフルタイムの ODBC DSN 接続を使用しています。レポートとクエリを作成するには、データベースへのフル アクセスが必要です。接続を閉じると、Access でエラーが発生し、期待どおりにテーブル情報を取得できません。

これに対する 1 つの解決策は、アクティブな運用データベースを複製し、そこですべての開発を行ってから、DSN をアクティブなデータベースに切り替えて、レポート/クエリごとに接続を開いたり閉じたりすることです。

私の全体的な質問は次のとおりです。開発/運用データベースのアプローチは必要ですか? アクティブなショッピング カートの MySQL データベースで常に開いている接続の問題 (ある場合) は何ですか?

=アラン・R.

4

1 に答える 1

1

接続はスレッドセーフではありません。複数のユーザーが接続を共有することは、私にトラブルを求めているように聞こえます。

データベースには、受け入れることができる同時接続数に制限があります。また、同時ユーザーは、トランザクション間の適切な分離を指定するために、開発者に追加の負担を課します。応答性と精度のバランスを取る必要があります。分離と ACID について調査します。

接続を開いたままにしておく必要がある場合、より多くのユーザーにスケーリングする唯一の方法は、データベースを複製することです。これにより、すべてのインスタンス間でデータが同期されていることを確認するという独自の頭痛の種が発生します。

接続を開いたままにしておく必要があるのは、次のことを行う必要がある場合のみです。接続を開き、操作を実行し、接続を閉じます。

ショッピング カートの状況は興味深いものです。接続を常に開いたままにしておくのではなく、中間層がセッションを確立し、中間層でトランザクションを構築する別の方法があります。完全なトランザクションが完了し、ユーザーが「購入」ボタンを押した場合にのみ、データベースに永続化します。

于 2011-05-29T14:23:36.277 に答える