ACIDは何によって保証されていますか?
原子性
- アトミック性は
undolog
、ロールバックする必要があるログ情報を記録するログによって保存されます。 - トランザクションがロールバックされたときに、正常に実行された SQL ステートメントを元に戻すとはどういう意味ですか?
- 追加、削除、変更などの SQL 操作を実行すると、以前にデータの履歴バージョンがすでに保持されており、このデータの履歴バージョンはアンドゥログに存在します。
- 1 つ書くと
insert
、1 つ記録されますdelete
- 1 つ書くと
- したがって、ロールバックすると、対応する履歴バージョンのデータが検索されます。
- 次に、以前に正常に実行された SQL ステートメントを元に戻すためにライトバックします。この時点で、最も基本的なロールバック操作が完了し、アトミック性が保証されます。
持続性
- 永続性は何によって保証されますか? 永続性は
redolog
以下によって - データを変更する場合、MySQL はまずこのレコードが配置されている「ページ」(つまり、B+ ツリー上のリーフ ノード) を見つけ、次にそのページをメモリにロードし、メモリ内で変更します。
- REDO ログも書き込まれ、特定のページでどのような変更が行われたのか、今回はどのような SQL が実行されたのかが記録されます。
- MySQL が途中でハングアップしても、REDO ログに従ってデータを復元できます。
隔離
- 孤立とは何ですか?
- 私たちのトランザクションが相互に干渉されず、各トランザクションが互いに分離されていることを確認する必要があります。
- したがって、この時間をMVCC テクノロジーによって実現する必要があります。
- MVCC は Multi-Version Concurrency Control であり、扱いにくく、多くの情報が含まれる技術です。
- MVCC -> RR により絶縁が保証され、RC 絶縁が発生します
一貫性
- トランザクションの目的は一貫性です
- これまでの原子性、永続性、分離性の保証はすべて一貫性を確保するためのものです。