はじめに

x-アプリを使用する全てのユーザに知っていて欲しいことを、業務でmdb(後述します)を取り扱う事もあるシステム開発者からの目線で記述しています。

データベースについては知っている方でも、ひょっとしたら「最適化」について誤った認識を持たれているかも知れないので、「DB最適化のススメ」の項だけでも読んでおいて損はないと思います。

 

音楽再生・管理ソフトでのデータベースについて

一般的に、音楽再生・管理ソフトでは楽曲情報を管理するのに「データベース」(以下DBと略します)というものが使用されています。
DBにはそのアプリケーションのライブラリとして取り込んだ楽曲ファイルの場所(パス)・曲のタイトル・アーティスト名・アルバム情報など、あらゆる情報が保存されています。
近年ではファイル自体にID3タグ等の形式でこれらの情報を保持することもできるようになっていますが、タグとしては保存できないアプリケーション独自の情報や、日本語での情報保持に適していないフォーマットもあるので、タグに埋め込まれた情報とDBの情報とを併用するのが普通となっています。

 

x-アプリのデータベースについて

x-アプリではmdb(Microsoft Access DataBase)という形式のDBが、前身ソフトSonicStage、さらにその前身のOpenMG Jukebox初期バージョン(1999年12月リリース)から継続して使用されています。
mdbはMicrosoft Officeファミリーの一製品、Microsoft Accessで扱われるファイル形式です。
mdbはファイル単体でDBとして機能し、Microsoft Accessがインストールされていなくても、Windows 2000以降のNT系OSに標準装備されているドライバでアクセス可能、という便利な特徴がある一方、もともと、個人用ユースとしての位置づけであり、本格的なDB製品に比べると信頼性・パフォーマンスの点で若干の難があり、中規模~大規模なシステムには不向きである、といった欠点もあります。
x-アプリはまぎれもなく個人用製品であるのは間違いないのですが、近年のストレージ増大もあって、ユーザによっては当時の中規模システムに匹敵するだけの情報量を保持するようになってきました。

参考までに、1999年12月当時の内蔵用HDDは最大でも37.5GB、主に流通していたのは16GB程度と、現在のWalkManよりも少ない容量です

 

DBバックアップのススメ

ここまで述べてきたような現状もあり、何かのきっかけでmdbファイルが破損し、データの一部、または全く読み込めなくなくなるといったことが起こりえます。
実際にネット上では、DB破損が原因で大切なライブラリを失ってしまった事例がいくつか見られます

なお、データ量が少なければ問題ないか? 他のDB形式なら完全な信頼性を得られるか? と言われれば決してそんなことはありません。多かれ少なかれ、DBには不慮の事故によるデータ破損は起こりえます

システム開発に携わる者の間では、大切なデータを保持しているmdbはこまめにバックアップするのが常識となっています。
せっかくファイル単体をコピーするだけで、簡単にバックアップできるのですから、不慮の事故が起きる前にバックアップしない手はありません。
拙作の「x-アプリ スキンセレクタ」では誰でも簡単にバックアップ・復元できるように配慮しているつもりですが、別に他の手段でも構いません。 タスク スケジューラや市販/フリーのバックアップソフトを使うという手もあります。 とにかく不慮の事故に備えて普段からバックアップを取っておくことを強くお勧めします。

本来ならx-アプリ自体にバックアップ機能・復元機能を備えて欲しい気持ちもありますが、一般ユーザに対してx-アプリは不完全なシステムですよと言ってるような感じがして、できないのでしょうかねぇ
ある程度の知識があればDBには宿命的に事故は起こりえることは誰でも知っているのですが・・・

一応、MtData1.mdbとか$MtData.mdbとか名前を変えて一つはバックアップをとってるけど、起動・終了するとすぐに上書きされるのであまり役には立たないですね

なお、x-アプリのDB(MtData.mdb)は標準的な環境では以下の場所に作られるようです。

  • Windows XP
    C:\Documents and Settings\All Users\Application Data\Sony Corporation\Sony MediaPlayerX\Packages\MtData.mdb
  • Windows Vista 以降
    C:\ProgramData\Sony Corporation\Sony MediaPlayerX\Packages\MtData.mdb

これらをエクスプローラで表示させるには、あらかじめフォルダオプションで隠しフォルダを表示させておく必要があります

 

DB最適化のススメ

mdbにはデータの更新を繰り返しているとファイルサイズが肥大化していく、といった特徴もあり、パフォーマンス(性能、もしくはレスポンスと同義)に大きく影響してきます。
これはHDDの断片化と同じような現象です。

もっともHDDは断片化することで使用容量が増えていくことはありませんが

私の経験上、肥大化したmdbは余裕で元の10倍とかのサイズになってしまいます。これでは、x-アプリのちょっとした操作でも、情報の読み込みに時間が掛かってしまうというものです。
これを解消するのが、「データベースの最適化」です。すなわちHDDのデフラグと同じですね。

x-アプリでは「ツール」→「設定」→「高度な設定」から実行できます。
パフォーマンスだけに関して言うと、初期のライブラリ構築が終わってから一度実行してしまえば、そう頻繁に行う必要はありませんが、日常の操作でも「再生回数」「☆評価」などの情報が更新されていくので、定期的に実行するのがいいかもしれません。

これまでに一度も実行したことがなくてx-アプリが「重い」と感じていらっしゃった方は、一度最適化するだけで場合によっては、目に見えるほど変わってくるかもしれませんよ。

ネット上ではDB最適化することでDBが破損するという噂が流れているようですが、私はこれまでに様々なmdbを何度となく最適化して、(単に幸運なだけかもしれませんが)そのような現象が起こったことはありません。
それどころか、Microsoft 公式サポートページでは、DB破損を防ぐための手段のひとつとして頻繁に最適化することが推奨されています。 もう少し古いページには断片化がパフォーマンス劣化だけでなく、DB破損の一因にもなることが明記されています。
仮に噂どおり最適化が原因でDBが破損するとしても、バックアップがあれば問題ないですしね^^

 

最後に

ちゃんと読んでいただけたら分かることですが、私はこの記事でx-アプリ、またはそのDBが欠陥品だとか言ってるわけではありませんし、DB破損の不安を煽るつもりもまったくありません。究極的にはDBに限らず、どんなファイルにもHDD障害での破損って問題はつきまとうわけですしね。
ただ、日頃からユーザレベルで可能な最低限の対処を実施し、快適なx-アプリライフを楽しみましょうo(^▽^)o
これだけです。