ホームページ > バックエンド開発 > PHPチュートリアル > データベースの読み取り/書き込み分離と支払いコールバック操作

データベースの読み取り/書き込み分離と支払いコールバック操作

WBOY
リリース: 2016-07-06 13:52:37
オリジナル
1060 人が閲覧しました

データベースの読み込み(A)と書き込み(B)を分けようと考えていますが、決済コールバックがあると必ず途中で複数のクエリ(A)と書き込み(B)が必要となり動作します。異なるホスト上の複数のライブラリ (A、B)、データの整合性を維持する方法

たとえば、支払いがコールバックされるとき、最初に確認してからトランザクションを開き、AをチェックしてBを書き込み、AをチェックしてBを書き込みますが、トランザクションに問題はありませんか?

使用されるデータベースは読み取りと書き込みを分離しており、支払いをコールする場合は複数の読み取りと複数の書き込みを行う必要があります。 1 つのトランザクションでトランザクション操作が確実に成功するようにする方法。

返信内容:

データベースの読み込み(A)と書き込み(B)を分けようと考えていますが、決済コールバックがあると必ず途中で複数のクエリ(A)と書き込み(B)が必要となり動作します。異なるホスト上の複数のライブラリ (A、B)、データの整合性を維持する方法

たとえば、支払いがコールバックされるとき、最初に確認してからトランザクションを開き、AをチェックしてBを書き込み、AをチェックしてBを書き込みますが、トランザクションに問題はありませんか?

使用されるデータベースは読み取りと書き込みを分離しており、支払いをコールする場合は複数の読み取りと複数の書き込みを行う必要があります。 1 つのトランザクションでトランザクション操作が確実に成功するようにする方法。

まず第一に、トランザクションを開くのはデータベース、つまりメイン データベースに対するものであることを明確にする必要があります。トランザクションを開いた後は、データベースからクエリを実行することはできません (ロック操作が行われるため、データベースからクエリを実行することもできません)。クエリのは書き込み操作です)。したがって、一般に、トランザクション操作全体はメイン データベースに対して行う必要があります。前述したように、A に行ってチェックし、次に B に行って書き込むという問題はありません。

投稿者のビジネス量が非常に大きい場合は、データベースをシャーディングし、シャーディングされたデータベースの残りを取得するためにユーザーの ID をインストールすることを検討できます。そうすれば、パフォーマンスの問題も解決でき、トランザクションの問題も解決できます。私の会社の現在のビジネスではシャーディングを使用しています

@junze ブランチ データベースについての質問ですが、マスター/スレーブ データベースのデータ同期はリアルタイムですか?マスターデータベースとスレーブデータベースはどのようなビジネスシナリオに分かれていますか?マスター/スレーブ データベースのデータの一貫性を確保するにはどうすればよいですか?

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート