Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


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

15.5 ARCHIVE ストレージエンジン

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

表 15.5 ARCHIVE ストレージエンジンの機能

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

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

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

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


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

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

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

ARCHIVE テーブルを作成するときに、サーバーはデータベースディレクトリにテーブル形式ファイルを作成します。ファイルはテーブル名から始まり .frm 拡張子が付きます。ストレージエンジンはほかのファイルを作成します。そのすべてのファイル名はテーブル名で始まります。データファイルの拡張子は .ARZ です。最適化操作中に .ARN ファイルが現れる場合があります。

ARCHIVE エンジンは INSERTSELECT をサポートしていますが、DELETEREPLACE、または UPDATE をサポートしていません。ORDER BY 操作、BLOB カラム、基本的に空間データ型を除くすべてのデータ型をサポートしています (セクション11.5.1「空間データ型」を参照してください)。ARCHIVE エンジンは低レベルロックを使用します。

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

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

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

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

  • INSERT ステートメントは行を圧縮バッファーに単純に入れ、バッファーは必要に応じてフラッシュします。バッファーへの挿入はロックで保護されています。SELECT は、入ってきた挿入が INSERT DELAYED (必要に応じてフラッシュ) だけだった場合を除いて、強制的にフラッシュを発生させます。セクション13.2.5.2「INSERT DELAYED 構文」を参照してください。

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

取り出し: 取り出しの際、要求によって行が圧縮解除され、行キャッシュはありません。SELECT 操作によって完全なテーブルスキャンが実行されます。SELECT が発生すると、現在使用できる行数を検出し、その行数を読み取ります。SELECT は一貫性読み取りとして実行されます。大量挿入または遅延挿入だけが使用された場合を除き、挿入時の多くの SELECT ステートメントが圧縮品質を低下させることがあります。圧縮品質を高めるために、OPTIMIZE TABLE または REPAIR TABLE を使用できます。SHOW TABLE STATUS によって報告される ARCHIVE テーブルの行数は常に正確です。セクション13.7.2.4「OPTIMIZE TABLE 構文」セクション13.7.2.5「REPAIR TABLE 構文」、およびセクション13.7.5.37「SHOW TABLE STATUS 構文」を参照してください。

追加のリソース


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