Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


14.1 InnoDB 入門

InnoDB は、高い信頼性と高いパフォーマンスとのバランスをとる汎用のストレージエンジンです。MySQL 5.5 の時点では、これがデフォルトの MySQL ストレージエンジンです。MySQL 5.6 では、ENGINE= 句を指定せずに CREATE TABLE ステートメントを発行すると、InnoDB テーブルが作成されます。

InnoDB の主要な利点

InnoDB テーブルの主要な利点は、次のとおりです。

  • その DML 操作は、トランザクションにユーザーデータを保護するためのコミットロールバック、およびクラッシュリカバリ機能が備わっている ACID モデルに従っています。

  • 行レベルのロックと Oracle スタイルの一貫性読み取りを使用すると、複数ユーザーの並列性およびパフォーマンスが向上します。

  • InnoDB テーブルでは、主キーに基づいてクエリーが最適化されるように、ディスク上のデータが整列されます。

  • データの整合性を保つために、InnoDB では FOREIGN KEY 制約もサポートされています。挿入、更新、および削除によってさまざまなテーブル間で不整合が発生しないかを確認するために、これらの操作がすべてチェックされます。

  • 同じステートメント内でも、InnoDB のテーブルと別の MySQL ストレージエンジンのテーブルを混在させることができます。たとえば、結合操作を使用すると、単一のクエリーで InnoDB テーブルと MEMORY テーブルのデータを結合できます。

  • InnoDB は、大きなデータボリュームを処理する際に、高い CPU の効率性と最大のパフォーマンスが実現されるように設計されています。

表 14.1 InnoDB ストレージエンジンの機能

ストレージの制限 64T バイト トランザクション はい ロック粒度
MVCC はい 地理空間データ型のサポート はい 地理空間インデックスのサポート はい[a]
B ツリーインデックス はい T ツリーインデックス いいえ ハッシュインデックス いいえ[b]
全文検索インデックス はい[c] クラスタ化されたインデックス はい データキャッシュ はい
インデックスキャッシュ はい 圧縮データ はい[d] 暗号化データ[e] はい
クラスタデータベースのサポート いいえ レプリケーションのサポート[f] はい 外部キーのサポート はい
バックアップ/ポイントインタイムリカバリ[g] はい クエリーキャッシュのサポート はい データディクショナリ向け更新統計 はい

[a] InnoDB の地理空間インデックスサポートは MySQL 5.7.5 以降で使用できます。

[b] InnoDB は、アダプティブハッシュインデックス機能に対して、内部的にハッシュインデックスを利用します。

[c] InnoDB の FULLTEXT インデックスサポートは MySQL 5.6.4 以降で使用できます。

[d] 圧縮された InnoDB テーブルは InnoDB Barracuda ファイルフォーマットを必要とします。

[e] ストレージエンジン内ではなくサーバー内で (暗号化関数を使って) 実装されています。

[f] ストレージエンジン内ではなくサーバー内で実装されています。

[g] ストレージエンジン内ではなくサーバー内で実装されています。


InnoDB ストレージエンジンには、データとインデックスをメインメモリーにキャッシュするための独自のバッファープールが保持されています。デフォルトでは、innodb_file_per_table 設定が有効になっているため、新しい各 InnoDB テーブルとそれに関連付けられたインデックスが個別のファイルに格納されます。innodb_file_per_table オプションを無効にすると、InnoDB ではそのテーブルとインデックスがすべて単一のシステムテーブルスペースに格納されます。システムテーブルスペースは、複数のファイル (または生のディスクパーティション) で構成されている場合があります。InnoDB テーブルは、ファイルサイズが 2G バイトに制限されているオペレーティングシステム上でも、大量のデータを処理できます。

InnoDB の機能と MySQL で提供されているその他のストレージエンジンを比較する方法については、第15章「代替ストレージエンジン「ストレージエンジンの機能」表を参照してください。

InnoDB の拡張機能と新機能

MySQL 5.6 での InnoDB の拡張機能と新機能については、次を参照してください。

追加のリソース

  • InnoDB 関連の用語および定義については、MySQL 用語集を参照してください。

  • InnoDB ストレージエンジン専用のフォーラムには、MySQL Forums::InnoDB からアクセスできます。

  • InnoDB は、MySQL と同じ GNU GPL ライセンスバージョン 2 (1991 年 6 月) によって発行されています。MySQL ライセンスの詳細は、http://www.mysql.com/company/legal/licensing/を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.