Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 86

Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 105

SQLのトランザクションについて

mysql, インフラ, データベース, 開発


Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 86

Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 105

mysqlを使っていて、UPDATE文を書く機会があり、これまで使ってきたように使おうとしていたところ、UPDATE文を書く際に、トランザクションを考慮したほうが良いと言われたので、トランザクションについて調べてみることにしました。また、コミットやロールバック等の用語も出てきたので、合わせて調べてみることにします。

トランザクションとは

トランザクションとは、データベース上で実行される処理のまとまりのことを意味しています。トランザクションを使うことによって、データ更新の確定や取り消しをすることができます。

ACID特性とは

トランザクションでは、4つの特性を満たさなければならない。4つの特性の名前の頭文字からACID特性と呼ばれている。

  • 原子性(ATOMICITY)
    トランザクションが終わったときに、更新内容はすべて実行されるか、すぜて実行されずに処理が終了することを保証する性質のこと。
  • 一貫性(CONSISTENCY)
    トランザクションに含まれる処理は、データベースに予め設定された制約をすべて満たす性質のこと
  • 独立性(ISOLATION)
    トランザクション同士が互いに干渉を受けないことを保証する性質。
  • 永続性(DURABILLIY)
    トランザクションが正常に終了してもロールバックされて終了しても、その時点でのデータの状態が保存されることを保証する性質。