MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

16.2 MyISAM ストレージエンジン

MyISAM は古い (そしてすでに使用できない) ISAM ストレージエンジンに基づいていますが、多くの役に立つ拡張機能を持っています。

表 16.2 「MyISAM ストレージエンジンの機能」

機能 Support
B ツリーインデックス はい
MVCC いいえ
T ツリーインデックス いいえ
インデックスキャッシュ はい
クラスタデータベースのサポート いいえ
クラスタ化されたインデックス いいえ
ストレージの制限 256TB
データキャッシュ いいえ
データディクショナリ向け更新統計 はい
トランザクション いいえ
ハッシュインデックス いいえ
バックアップ/ポイントインタイムリカバリ (ストレージエンジン内ではなくサーバー内で実装されています。) はい
レプリケーションのサポート (ストレージエンジン内ではなくサーバー内で実装されています。) はい
ロック粒度 Table
全文検索インデックス はい
圧縮データ はい (圧縮された MyISAM テーブルがサポートされているのは、圧縮行フォーマットを使用している場合だけです。 MyISAM で圧縮行フォーマットを使用するテーブルは、読み取り専用です。)
地理空間インデックスのサポート はい
地理空間データ型のサポート はい
外部キーのサポート いいえ
暗号化データ はい (暗号化機能を介してサーバーに実装されます。)

MyISAM テーブルは、ディスク上の 2 つのファイルに格納されます。 そのファイル名はテーブル名で始まり、ファイルタイプを示す拡張子が付きます。 データファイルには .MYD (MYData) 拡張子が付きます。 インデックスファイルには .MYI (MYIndex) 拡張子が付きます。 テーブル定義は、MySQL データディクショナリに格納されます。

MyISAM テーブルが必要であることを明示的に指定するには、ENGINE テーブルオプションで指定します。

CREATE TABLE t (i INT) ENGINE = MYISAM;

MySQL 8.0 では通常、InnoDB がデフォルトエンジンであるため、ENGINE を使用して MyISAM ストレージエンジンを指定する必要があります。

mysqlcheck クライアントか myisamchk ユーティリティーで MyISAM テーブルをチェックしたり修正したりできます。 容量を節約するために myisampackを使って MyISAM テーブルを圧縮することもできます。 セクション4.5.3「mysqlcheck — テーブル保守プログラム」セクション4.6.4「myisamchk — MyISAM テーブルメンテナンスユーティリティー」、およびセクション4.6.6「myisampack — 圧縮された読み取り専用の MyISAM テーブルの生成」を参照してください。

MySQL 8.0 では、MyISAM ストレージエンジンはパーティション分割をサポートしていません。 「以前のバージョンの MySQL で作成されたパーティション MyISAM テーブルは、MySQL 8.0 では使用できません」。 詳細は、セクション24.6.2「ストレージエンジンに関連するパーティショニング制限」を参照してください。 このようなテーブルを MySQL 8.0 で使用できるようにアップグレードする方法の詳細は、セクション2.11.4「MySQL 8.0 での変更」 を参照してください。

MyISAM テーブルには次のような特徴があります。

MyISAM は次のような機能もサポートしています。

追加のリソース