40

データベースの種類とデータベース エンジンでトランザクションを使用する方法に関する非常に詳細なチュートリアルを読んでいますが、トランザクションをいつ、なぜ使用する必要があるかを教えてくれるガイドが見つかりません。

トランザクションは通常、銀行業務に使用されることを知っています。したがって、お金のデータを扱う場合、それらは他の多くの方法で使用されると想像できます。

INSERT今日、私はリレーショナル データベースのさまざまなステートメントを含むページに取り組んでいます。これが、それらを使用する必要があるケースの 1 つであるかどうかを知りたいと思っていました。

データの一部が失われる可能性があるケース (コーダー エラーは別として) を知らないという印象を受けるので、いつ使用するかについて常に心配しています。

誰かがこれらの基本的なルールを説明したりリンクしたりできますか?

を使用してMySQL 5.0.8います。InnoDBトランザクションが必要なすべてのテーブルに使用する必要がありますか? はいの場合InnoDB、一般的なものより遅いですが、MyISAM心配する必要はありませんか?

ありがとう

4

6 に答える 6

28

基本的に、エラーが発生した場合やその他の理由で、外部の変更に敏感であるか、すべての変更をロールバックする機能が必要な作業単位があるときはいつでも。

優れた回答とそれらを使用する理由については、こちらを参照してください

于 2010-01-29T00:25:42.873 に答える
14

Nick Craver が書いたことに加えて、アトミックに実行する必要がある一連の書き込みがある場合は、トランザクションを使用する必要があります。つまり、すべて成功するか、どれも成功しないかのどちらかです。

于 2010-01-29T00:26:25.627 に答える
11

トランザクションは、完了に失敗したり、タスクの途中で他の誰かが読み書きしたりしてデータが破損する可能性がある場合に使用する必要があります。これらには以下が含まれますが、これらに限定されません。

  • 後で削除するためのテーブルからの読み取り
  • 関連データを複数のテーブルに書き込む
于 2010-01-29T00:26:46.633 に答える
6

アトミックでなければならないアクションのグループ (すべて成功するか、どれも成功しない) がある場合にトランザクションを使用します。これらのアクションをトランザクションでラップすると、エラーが発生したときに既に成功したアクションをロールバックできます。また、トランザクションが完了するまでロックが保持されるため、操作しているデータの一貫性が保証されます。

于 2010-01-29T00:26:50.103 に答える