TOPサーバ構築・運用> Blackholeテーブルのファイル構成




徹底比較!! MySQLエンジン
徹底比較!! MySQLエンジン

第4回:CSVとBlackhole
著者:NTTデータ  藤塚 勤也   2006/9/12
前のページ  1  2  3
Blackholeテーブルのファイル構成

   テーブルを作成する際、CREATE TABLE文のENGINE句に"BLACKHOLE"を指定することにより、Blackholeテーブルを作成することができます。Blackholeテーブルを作成すると、そのデータベースのディレクトリ内に、どのようなカラム構成にてできているかなどのテーブル構造のデータが格納された「テーブル名.frm」のみが作成されます。

   次に示すは、「Blackhole_TEST」データベース内に「TEST00」という名前のBlackholeテーブルを作成した時のファイル一覧です。「Blackhole_TEST」ディレクトリ内に「TEST00.frm」ファイルのみが存在していることがわかると思います。
[root@localhost var]# ls Blackhole_TEST/
TESTOO.frm

   また、次はBlackholeテーブルの「TEST00」に10万件のレコードをロードした状態にて、「show table status」コマンドを実行した結果内容です。10万件のレコードは存在せず、「Rows: 0」と表示されています。

mysql> show table status \G;
************ 1. row *****************
           Name: TEST00
         Engine: BLACKHOLE
        Version: 10
     Row_format: Fixed
           Rows: 0
 Avg_row_length: 0
    Data_length: 0
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: NULL
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options:
        Comment:


Blackholeエンジンの使い道

   Blackholeエンジンの用途としては、いくつか考えられます。

   Blackholeエンジンは、テーブルデータをメモリにもディスクにも保存しませんが、バイナリログを書き出すことは可能です。そこで、MySQLのレプリケーション機能と組み合わせると図2のような仕組みを作ることができます。

Blackholeエンジンの使用例
図2:Blackholeエンジンの使用例

   マスターデータベース内のログデータベースをBlackholeテーブルとして作成すると、ログデータベースのデータ実体をスレーブデータベースにのみ作成することができます。もちろん、スレーブデータベースはMyISAMエンジンなどのデータをディスク上に格納するストレージエンジンを使用しなければいけません。

   このような用途にBlackholeテーブルを使用すると、日増しに増加するログデータベースのデータ実体がマスターデータベース内に蓄積されません。よって、マスターデータベースは業務データベースのメンテナンスにのみ注力でき、直接業務処理とは関係のないログデータベースのメンテナンスをスレーブデータベースに任せることができます。

   さらに、上記以外のBlackholeエンジンの用途としては、性能測定環境といったものが考えられます。Blackholeエンジンは実質データ処理を何も行いませんので、ストレージエンジンそのものの負荷がほとんどありません。そこで、このことを上手に利用すると、MySQLサーバのデータ処理以外の性能を測定することが可能になります。

   例えば、バイナリログの書き込みを実施した時の性能と、未実施とした時の性能を比べれば、それは実質バイナリログの書き込み性能に相当します。

   また、MySQLサーバはデータ処理以外にも様々な処理を行います。SQLのパースやオプティマイズなどです。そこで、データベース内の各種テーブルをBlackholeエンジンにて作成し、そのデータベースに対して各種SQL文の処理性能を測定すれば、それは実質データ処理以外の部分のMySQLサーバの性能値に相当します。


まとめ

   今回はCSVエンジンとBlackholeエンジンという、特殊なストレージエンジンを紹介しました。特にBlackholeエンジンは、その名前もユニークですが機能も極めてユニークです。今回紹介した使用方法以外にももっと適した使用方法があるかもしれません。是非、色々と試して見て下さい。

前のページ  1  2  3


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

INDEX
第4回:CSVとBlackhole
  はじめに
  テーブルデータがテキストファイルであるメリット
Blackholeテーブルのファイル構成