プログラマ38の日記

主にプログラムメモです。

【DWH】データモデリング (4.結合するキーは極力サイズを小さくする。)

この記事は、前回書いたデータモデリングの9つのことの4つ目です。

 

crmprogrammer38.hatenablog.com

 

件数が多ければ多いほど結合の処理時間がかかってきます。

なので、物理的に問題がないなら結合するキー項目のサイズを極力小さくします。

具体的には、

・CHARではなく、VARCHAR

・文字型のキー項目があって、その項目はただ、連番に、左に0詰めしているだけだったら、数値項目

・日付項目で時刻を含まないなら、数値(YYYYMMDDの数値にする)

・もちろん桁数も短くできるなら削ります(業務的に必ず10バイトなのに、30バイトなどで定義しない)

 

純粋に格納するバイト数が小さくなるように定義します。

だからといって、全てのディメンションのキー項目を数値型のサロゲートキーにする必要はありません。個人的にはナチュラルキーをベースとして、どうしてもというところだけサロゲートキーにするというのが良いと思っています。

性能が良いデータベースを買ったのだから気にしないなんてのは勿体無いです。データベースの性能を引き出しましょう。早くて困る人はいませんし、何より開発者も幸せになれます。