 |

|
徹底比較!! MySQLエンジン |
第3回:MemoryとArchive
著者:NTTデータ 藤塚 勤也 2006/8/29
|
|
|
前のページ 1 2 3 次のページ
|
 |
Archiveエンジンとは
|
Archiveエンジンは、テーブルデータを圧縮してディスク上でのデータ格納量を低減することを目的としたストレージエンジンです。
Archiveテーブルに対して使用できるSQL文には制限があります、具体的にはINSERT文とSELECT文のみ実行可能です。DELETE文やUPDATE文が実行できないということは、1度挿入したレコードを変更することができないことを意味し、改竄されることのないテーブルとして監査用データに使用することもできます。
なお、SELECT文は実行できるものの、現行バージョンのArchiveエンジンはインデックスをサポートしていないため、必ず全件探索になります。よって、性能面については注意が必要です(将来バージョンではインデックスをサポートするようです)。
|
Archiveのテーブルファイル
|
テーブルを作成する際に、CREATE TABLE文のENGINE句に「ARCHIVE」を指定することにより、Archiveテーブルを作成することができます。Archiveテーブルを作成すると、そのデータベースのディレクトリ内に、「テーブル名.frm」「テーブル名.ARZ」「テーブル名.ARM」の3つのファイルが作成されます。
- テーブル名.frm
- 他のストレージエンジンと同様に、そのテーブルのカラム構成等を格納するファイル。
- テーブル名.ARZ:
- Archiveテーブルのテーブルデータを格納するファイルで、gzip形式で圧縮されている。
- テーブル名.ARM:
- Arichveエンジン独自のメタ情報を格納するファイル。
表2:テーブルファイルの役割
次に示すのは、「Archive_TEST」データベース内に「TEST00」という名前のArchiveテーブルを作成した時のファイル一覧です。「Archive_TEST」ディレクトリ内に「TEST00.frm」「TEST00.ARZ」「TEST00.ARM」の3つのファイルが存在していることがわかると思います。
[root@localhost var]# ls Archive_TEST/
TEST00.ARM TEST00.ARZ TEST00.frm
|
次はArchiveテーブルの「TEST00」に10万件のレコードをロードした状態にて、「show table status」コマンドを実行した結果内容を次に示します。
show table statusコマンドの例
mysql> show table status \G;
*********** 1. row *****************
Name: TEST00
Engine: ARCHIVE
Version: 10
Row_format: Compressed
Rows: 100000
Avg_row_length: 4244
Data_length: 8022810
Max_data_length: 424400000
Index_length: 0
Data_free: 0
Auto_increment: NULL
Create_time: 2006-08-04 14:52:41
Update_time: 2006-08-04 14:52:41
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
|
なお、Archiveテーブルを構成するファイルには、もう1つ「テーブル名.ARN」というファイルがあります。このファイルは、「optimize table」コマンドをArchiveテーブルに対して実行した際に一時的に作成されるファイルです。通常は、存在していません。
|
前のページ 1 2 3 次のページ
|

|
|

|
著者プロフィール
株式会社NTTデータ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
|
|
|
|