MySQLアーカイブ

アーカイブストレージエンジン
原作者ブライアン・アーカー
初回リリース2004
書かれたCC++
オペレーティング·システムクロスプラットフォーム
プラットフォームx86x86-64SPARCMIPSPowerPC
タイプデータベースエンジン
ライセンスGNU一般公衆利用許諾契約書
Webサイトmysql .bkbits .com ウィキデータで編集する

Archiveは、 MySQLリレーショナルデータベース管理システム用のストレージエンジンです。この分析ストレージエンジンを使用することで、「アーカイブ」専用のテーブルを作成できます。このテーブルからデータを削除することはできず、追加のみ可能です。Archiveエンジンはzlibライブラリに基づく圧縮戦略を採用し、ビットヘッダーを使用してNULLを表す行を圧縮し、文字型フィールドの空白をすべて削除します。圧縮が完了すると、行は圧縮バッファに挿入され、明示的なフラッシュテーブル、読み取り、またはテーブルのクローズによってディスクにフラッシュされます。

アーカイブテーブルにおける現在の制約の一つは、インデックスをサポートしていないため、SELECTタスクを実行する際にテーブルスキャンが必要となることです。しかし、アーカイブテーブルはMySQLクエリキャッシュによってサポートされており、繰り返し実行されるアーカイブテーブルクエリの応答時間を大幅に短縮できます。[ 1 ] MySQLは、今後のリリースでアーカイブテーブルに対するインデックスサポートを検討しています。

このエンジンはACID準拠ではありません。OLTPエンジンとは異なりブロック境界のない「ストリーム」形式をディスクに使用します。生成されるアーカイブファイルのヘッダーは、そのファイルのデータ形式と内容を表すバイト配列です。MySQL 5.1では、MySQL FRMファイルのコピーが各アーカイブファイルのヘッダーに保存されます。テーブル定義を表すFRMファイルにより、アーカイブファイルをMySQLサーバーにコピーすることで、アーカイブファイルをMySQLサーバーに復元できます。

zlibを使用しているにもかかわらず、アーカイブファイルはgzipツールの基盤であるgzioと互換性がありません。gzio は、gzio からフォークした独自の azio システムを使用しています。

Archive は、他の MySQL 分析エンジンであるMyISAMとは異なり、行レベルのロックエンジンであり、単一のクエリを通じて一定のバージョンスナップショットを保持する(MVCCである)という点で異なります。つまり、Archive は同時実行のバルク挿入をロックしません。バルク挿入では、インターレース INSERT を実行するため、MyISAM とは異なり、順序は保証されません。

ユーザーは、archive_reader ツールを使用して、テーブルのオンライン スナップショットを取得し、アーカイブ ファイルの特性を変更できます。

アーカイブ テーブルを作成するには、次のエンジン文字列を指定します。

テーブルt1 ( a int , b varchar ( 32 ) )を作成ENGINE = ARCHIVE

MySQL [ 2 ]アーカイブストレージエンジンは、ブライアン・アーカーによって開発・保守されています。2004年にMySQL 4.1で導入されました。

参考文献