MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  代替ストレージエンジン  /  ARCHIVE ストレージエンジン

16.5 ARCHIVE ストレージエンジン

ARCHIVE ストレージエンジンは、非常に小さなフットプリントに大量のインデックス化されていないデータを格納する、特別な目的のテーブルを作成します。

表 16.5 「ARCHIVE ストレージエンジンの機能」

機能 Support
B ツリーインデックス いいえ
MVCC いいえ
T ツリーインデックス いいえ
インデックスキャッシュ いいえ
クラスタデータベースのサポート いいえ
クラスタ化されたインデックス いいえ
ストレージの制限 なし
データキャッシュ いいえ
データディクショナリ向け更新統計 はい
トランザクション いいえ
ハッシュインデックス いいえ
バックアップ/ポイントインタイムリカバリ (ストレージエンジン内ではなくサーバー内で実装されています。) はい
レプリケーションのサポート (ストレージエンジン内ではなくサーバー内で実装されています。) はい
ロック粒度
全文検索インデックス いいえ
圧縮データ はい
地理空間インデックスのサポート いいえ
地理空間データ型のサポート はい
外部キーのサポート いいえ
暗号化データ はい (暗号化機能を介してサーバーに実装されます。)

ARCHIVE ストレージエンジンは MySQL バイナリ配布に含まれています。 ソースから MySQL を構築する場合にこのストレージエンジンを有効にするには、CMake-DWITH_ARCHIVE_STORAGE_ENGINE オプションで呼び出します。

ARCHIVE エンジンのソースを調べるには、MySQL ソース配布の storage/archive ディレクトリを検索します。

ARCHIVE ストレージエンジンが SHOW ENGINES ステートメントで使用できるかどうかを確認できます。

ARCHIVE テーブルを作成すると、ストレージエンジンはテーブル名で始まる名前のファイルを作成します。 データファイルの拡張子は .ARZ です。 最適化操作中に .ARN ファイルが現れる場合があります。

ARCHIVE エンジンでは、INSERTREPLACE および SELECT はサポートされますが、DELETE または UPDATE はサポートされません。 ORDER BY 操作、BLOB カラムおよび空間データ型はサポートされています (セクション11.4.1「空間データ型」 を参照)。 地理空間参照システムはサポートされていません。 ARCHIVE エンジンは低レベルロックを使用します。

ARCHIVE エンジンは AUTO_INCREMENT カラム属性をサポートしています。 AUTO_INCREMENT カラムには、一意のインデックスまたは一意でないインデックスのどちらかを付けることができます。 ほかのカラムにインデックスを作成しようとすると、エラーになります。 ARCHIVE エンジンは、それぞれ、新しいテーブルの最初のシーケンス値を指定したり、既存テーブルのシーケンス値をリセットしたりする CREATE TABLE ステートメントの AUTO_INCREMENT テーブルオプションもサポートしています。

ARCHIVE は、現在の最大カラム値未満の値を AUTO_INCREMENT カラムに挿入する機能をサポートしていません。 そのようにしようとすると、ER_DUP_KEY エラーになります。

ARCHIVE エンジンは BLOB カラムが要求されない場合はそれらを無視して、読み取り中にそれらを通り過ぎてスキャンします。

ARCHIVE ストレージエンジンはパーティション分割をサポートしていません。

ストレージ: 行は挿入されるときに圧縮されます。 ARCHIVE エンジンは zlib ロスレスデータ圧縮を使用します (http://www.zlib.net/を参照してください)。 OPTIMIZE TABLE を使用してテーブルを解析したり、より小さいフォーマットにテーブルを圧縮したりできます (OPTIMIZE TABLE を利用する理由については、このセクションの後半を参照して下さい)。 このエンジンは CHECK TABLEもサポートしています。 使用される挿入のタイプはいくつかあります。

  • INSERT ステートメントは行を圧縮バッファーに単純に入れ、バッファーは必要に応じてフラッシュします。 バッファーへの挿入はロックで保護されています。 SELECT はフラッシュを強制的に実行します。

  • 大量挿入は、ほかの挿入が同時に発生した場合を除いて (その場合は部分的に可視になります)、完了後にのみ可視になります。 SELECT は、ロード中に通常の挿入が発生した場合を除いて、大量挿入をフラッシュすることはありません。

取り出し: 取り出しの際、要求によって行が圧縮解除され、行キャッシュはありません。 SELECT 操作によって完全なテーブルスキャンが実行されます。SELECT が発生すると、現在使用できる行数を検出し、その行数を読み取ります。 SELECT は一貫性読み取りとして実行されます。 バルク挿入のみを使用しないかぎり、挿入中に多くの SELECT ステートメントが圧縮を妨げる可能性があることに注意してください。 圧縮品質を高めるために、OPTIMIZE TABLE または REPAIR TABLE を使用できます。 SHOW TABLE STATUS によって報告される ARCHIVE テーブルの行数は常に正確です。 セクション13.7.3.4「OPTIMIZE TABLE ステートメント」セクション13.7.3.5「REPAIR TABLE ステートメント」、およびセクション13.7.7.38「SHOW TABLE STATUS ステートメント」を参照してください。

追加のリソース


関連キーワード:  エンジン, ストレージ, テーブル, ARCHIVE, サポート, インデックス, TABLE, 挿入, ステートメント, 圧縮