今日はなにの日。

気になったこと勉強になったことのメモ。

今日は、MySQLのリファレンス「第 15 章 InnoDB ストレージエンジン」を読むの日(その3)。

目次

とある日

MySQLのリファレンスを読む 1章 - ASMのきもち

上記の記事見て、やっぱり詳しくなるためにはドキュメント読むかということで、前から気になってた部分のInnoDBについて見た内容を記録してきます。

(ちなみに、一章から読もうとしてMySQL 8.0の機能の多さに諦めました)

ちなみに、以下のインタビューも勉強になりました。

yoku0825さんがMySQLスペシャリストになるまでにやってきた勉強法を、私たちにすべて教えてください! - Findy Engineer Lab - ファインディエンジニアラボ

今日読んだもの

今までの記録

  1. 今日は、MySQLのリファレンス「第 15 章 InnoDB ストレージエンジン」を読むの日(その1)。 - 今日はなにの日。
  2. 今日は、MySQLのリファレンス「第 15 章 InnoDB ストレージエンジン」を読むの日(その2)。 - 今日はなにの日。

読んでみたメモ

MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.2 InnoDB および ACID モデル

MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.3 InnoDB マルチバージョン

  • InnoDBマルチバージョンストレージエンジン
    • MVCC「「マルチバージョン同時実行性制御」」の頭字語
    • 変更された行の古いバージョンに関する情報が保持される
    • *並列性*が高くなるのではやくなる方法
  • ロールバックセグメント*undo ログ*を含む記憶域
  • InnoDB は内部的に、データベース内に格納された各行に 3 つのフィールドを追加する
    • DB_TRX_ID
    • DB_ROLL_PTR
    • DB_ROW_ID
  • トランザクションを定期的にコミットしないと更新 Undo ログからデータを破棄できないから、ロールバックセグメントが大きくなり過ぎてテーブルスペースがいっぱいになることがある
  • SQL ステートメントで行を削除しても、その行はすぐにデータベースから物理的に削除されない
    • 削除用に書き込まれた更新 Undo ログレコードが破棄されたときにのみ、対応する行およびそのインデックスレコードを物理的に削除する

MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.4 InnoDB のアーキテクチャ