単一の MySQL トランザクション内にどれだけの PHP コードを含めることができますか? 単一のトランザクション内で、他のクラスとメソッドの呼び出し、インスタンスの操作または作成などに関して、トランザクションのベスト プラクティスは何ですか?
ここで「含める」とは、 と の間に入ることを意味しbeginTransaction();
ますcommit();
単一の MySQL トランザクション内にどれだけの PHP コードを含めることができますか? 単一のトランザクション内で、他のクラスとメソッドの呼び出し、インスタンスの操作または作成などに関して、トランザクションのベスト プラクティスは何ですか?
ここで「含める」とは、 と の間に入ることを意味しbeginTransaction();
ますcommit();
私は、1 つの要素とそのすべての依存関係に対して 1 つのトランザクションを使用することに慣れています。
たとえば、ユーザーがニックネームを変更できるフォーラムがあります。しかし、彼らは自分のアカウントを削除することもできます。私は投稿が削除されるのを見たくありません. そのため、各投稿のどこかにユーザーの名前などを保存する必要がありますVARCHAR
。
ユーザーがニックネームを変更した場合、私はトランザクションを開始し、ニックネームをどこでも変更し、エラーがなければコミットします。1 つの要求が失敗した場合、この変更に関するすべてをロールバックできるはずなので、この時点では要求の数は調べません。
しかし、管理者が管理パネルで 2 つのニックネームを変更し、1 回検証した場合、1 つのトランザクションで問題が発生するのを避けるために、2 つのトランザクション (ユーザーごとに 1 つ) を開きます。