MySQLのトランザクション管理とロックの基本

2024/07/14
x-logoline-logo

MySQLのトランザクション管理とロックの基本

2024/07/14
x-logoline-logo
PR

今回は、MySQLのトランザクション管理とロックについて初歩的な内容を紹介します。

トランザクションってなに?

トランザクションとは、一連のデータ操作をひとまとめにして扱う仕組みです。例えば、銀行のシステムでお金を送金する場合、送金元からお金を引き出して、送金先にお金を振り込むという二つの操作をまとめて行います。この二つの操作がどちらも成功するか、どちらも失敗するかのどちらかでなければなりません。これをトランザクションと言います。

トランザクションの基本操作

  • START TRANSACTION: トランザクションの開始
  • COMMIT: トランザクションの確定
  • ROLLBACK: トランザクションの取り消し

以下は、トランザクションの基本操作の例です。


START TRANSACTION;

UPDATE accounts SET balance = balance - 1000 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 1000 WHERE account_id = 2;

COMMIT;

ロックってなに?

ロックは、データベースのデータを安全に扱うために使用されます。例えば、二人の人が同じデータを同時に変更しようとした場合、データが壊れるのを防ぐためにロックが必要です。ロックにはいくつかの種類がありますが、ここでは基本的なものを紹介します。

ロックの種類

  • 共有ロック (Read Lock): データの読み取りはできるけれど、変更はできないようにする
  • 排他ロック (Write Lock): データの読み取りも変更もできないようにする

ロックの基本操作

以下、ロックの基本操作の例です。


-- 共有ロック
LOCK TABLES accounts READ;

-- 排他ロック
LOCK TABLES accounts WRITE;

-- ロックを解除
UNLOCK TABLES;

まとめ

今回は、MySQLのトランザクション管理とロックの基本について学びました。トランザクションはデータ操作を安全にまとめて行う方法で、ロックはデータの一貫性と安全性を保つための仕組みです。

この記事はAIを使用して作成されています。
PR