今日のようにハードディスク容量が飛躍的に拡大しているとファイル容量に気を配る機会少なくなっているだろう。ローエンドモデルPCが,1ドライブで320GB搭載も珍しくないのだから,逆にバックアップ方法に悩むのではないだろうか。

 しかし,その感覚で,一昔前に導入したサーバーを放置しておくと,データベースファイルが膨れ上がり身動きが取れない状況が発生することもあるだろう。今回は,そのような場合の対応策を紹介しよう。また,MySQL Enterpriseの1回目の更新が行われた。その情況もレポートする。

MySQLバージョン情報

 MySQL Enterpriseがスタートしてから1カ月が経過した。予告どおり,MySQL Enterprise Server は,11月14日に5.0.30がリリースされた。それに対して,MySQL Community Serverは,10月21日にリリースしたままの5.0.27 である。

表1●MySQL Enterprise ServerとMySQL Community Server

リリース日 MySQL Enterprise Server MySQL Community Server
10月3日 5.0.26
10月24日 5.0.28 5.0.27(10月21日)
11月14日 5.0.30

 MySQL Enterprise Server 5.0.30は,9項目の機能変更(追加)と91項目のバグフィックスが実施されている。MySQL Community Serverは,5.0.27のままなので大きな違いが生じた。現在,MySQL Community Serverは,これらのバグがFixされていない状態だ。

 なお,MySQL 5.0リファレンスマニュアルのMySQL Change History(Appendix G)は,MySQL Enterprise ServerとMySQL Community Serverに分割された。これによって,それぞれのリリース情況を明快に解説されている。

データベースファイルとリサイズ

 データベースは,データの格納と検索が主な役割だ。そのため,データ量の増大に応じて,データファイルの容量が増加する。どんなにディスク容量が増加しても格納できるファイル容量には限界がある。

 また,データを削除や更新した場合,元々の領域が消去されて虫食いのような状態になる。これをフラグメンテーションという。フラグメンテーションは,格納しているデータ量よりもファイル容量が増えるだけでなく,検索時間にも悪影響を及ぼす。フラグメンテーションを解消するのが,デフラグメンテーションつまりデフラグである。また,フラグメンテーションによって増大したデータファイルを適正なサイズにする場合は,リサイズと表現する。MySQLでは,MyISAMとInnoDBでリサイズの方法が大きく異なっている。

MyISAMでのデータファイルのリサイズ

 MyISQMでは,一つのテーブルで3つのファイルを生成する。このうち拡張子MYDのファイルにデータが格納されている。

 データベースdatabank1には,city,country,countrylanguageの3つのテーブルが格納されている。テーブルcityのリサイズを例にMyISAMのリサイズ手順を紹介する。