今日は、MySQLのリファレンス「第 15 章 InnoDB ストレージエンジン」を読むの日(その1)。
目次
とある日
上記の記事見て、やっぱり詳しくなるためにはドキュメント読むかということで、前から気になってた部分のInnoDBについて見た内容を記録してきます。
(ちなみに、一章から読もうとしてMySQL 8.0の機能の多さに諦めました)
ちなみに、以下のインタビューも勉強になりました。
yoku0825さんがMySQLスペシャリストになるまでにやってきた勉強法を、私たちにすべて教えてください! - Findy Engineer Lab - ファインディエンジニアラボ
今日読んだもの
- MySQL :: MySQL 8.0 リファレンスマニュアル :: 15 InnoDB ストレージエンジン
- MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.1 InnoDB 入門
読んでみたメモ
MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.1 InnoDB 入門
- MySQL 8.0 では、
InnoDBがデフォルトの MySQL ストレージエンジンになった - コミット、ロールバック、およびクラッシュリカバリ機能が備わっている ACID モデルになっている
- Oracle スタイルの一貫性読み取りらしい
- 主キー検索用の I/O を最小限に抑えるためにデータを編成する clustered index と呼ばれる主キーインデックス
- 機能一覧
| 機能 | Support |
|---|---|
| *B ツリーインデックス* | はい |
| *MVCC* | はい |
| *T ツリーインデックス* | いいえ |
| *インデックスキャッシュ* | はい |
| *クラスタデータベースのサポート* | いいえ |
| *クラスタ化されたインデックス* | はい |
| *ストレージの制限* | 64TB |
| *データキャッシュ* | はい |
| *データディクショナリ向け更新統計* | はい |
| *トランザクション* | はい |
| *ハッシュインデックス* | いいえ (InnoDB は、アダプティブハッシュインデックス機能に対して、内部的にハッシュインデックスを利用します。) |
| *バックアップ/ポイントインタイムリカバリ* (ストレージエンジン内ではなくサーバー内で実装されています。) | はい |
| *レプリケーションのサポート* (ストレージエンジン内ではなくサーバー内で実装されています。) | はい |
| *ロック粒度* | 行 |
| *全文検索インデックス* | はい (FULLTEXT インデックスに対する InnoDB サポートは、MySQL 5.6 以降で使用できます。) |
| *圧縮データ* | はい |
| *地理空間インデックスのサポート* | はい (InnoDB での地理空間インデックス付けのサポートは、MySQL 5.7 以降で使用できます。) |
| *地理空間データ型のサポート* | はい |
| *外部キーのサポート* | はい |
| *暗号化データ* | はい (暗号化機能を介してサーバーに実装されます。MySQL 5.7 以降では、保存データのテーブルスペース暗号化がサポートされます。) |
MySQL :: MySQL 8.0 リファレンスマニュアル :: 1.3 MySQL 8.0 の新機能
InnoDBの拡張機能および新機能の詳細は、次を参照してください
別ベージに寄り道。
- 現在の最大自動インクリメントカウンタ値がサーバーの再起動後も保持されます。
ROLLBACK操作の直後にサーバーを再起動しても、ロールバックされたトランザクションに割り当てられた自動増分値は再利用されなくなりました。- デッドロック検出を無効にするには、新しい動的変数
innodb_deadlock_detectを使用できます。 - デッドロック発生時のトランザクションロールバックの
innodb_lock_wait_timeout設定に依存する方が効率的な場合があります。 - 新しい
INFORMATION_SCHEMA.INNODB_CACHED_INDEXESテーブルには、インデックスごとにInnoDBバッファプールにキャッシュされたインデックスページの数がレポートされます。 InnoDBストレージエンジンはアトミック DDL をサポートするようになり、操作中にサーバーが停止した場合でも、DDL 操作が完全にコミットまたはロールバックされるようになりました。
〆
先は長いな&難しそう。