Tips

データベースを高速化する為に「Fat Tables」を使用する

日付1999/07/02
ID99-81
バージョン
プラットフォーム

この記事は、最新ではないバージョンに関連した方法について解説しています。

最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。

4th Dimensionはレコードをロードする時には、必ずレコード“全体”をロードします。

それはすべてのフィールドの内容を読み出すということです。ほとんどの型のフィールドは、たいしたデータ量ではなく、時には数バイトしかありません。しかし、これから話す3つのフィールドは大量のデータを保持していることがあります。BLOB、テキスト、ピクチャーです。 これらのフィールドのサイズは、納められたデータのサイズに依存しています。

これらのフィールド型のデータは数百バイトから時には数メガバイトにもなることがあります。 ハードディスクから多くのデータを読み込むには、それ相応の時間が掛かるものです。レコードのデータ量が増えれば、それだけ4Dはレコードのロードに時間が掛かります。このことが累積的にデータベースの速度に劇的な影響を与えることがあります。状況によっては、この問題の回避策となるシンプルなトリックがあります。

テーブルにBLOB、テキスト、ピクチャフィールドがあるものの、多くのデータベース処理ではそれらが使われていなかったとしましょう。そんな場合は、これらのフィールドを別のテーブルへ移してしまいましょう。この移行先のテーブルを「Fat Tables」と呼ぶことにします。

元のテーブルとFat Tablesはリレートされていますが、明示的にFat Tables側のレコード読み込みを指示しない限り、ロードされないためにマニュアルリレートにしておかなければいけません。

この手法で定義したデータベースでは、BLOB、テキスト、ピクチャフィールドの内容を必要としない操作ではロードされませんので、より高速に動作します。