Performance tips: lookupカラムの利用

| | コメント(0) | トラックバック(0)
InfobrightエンタープライズエディションではCHARカラム、VARCHARカラムに対してlookupという修飾子を設定する事ができ、lookupカラムを定義する事でカラムの圧縮率、クエリパフォーマンスが向上します。

lookupカラムは値を整数に置き換えて圧縮せずにメモリで保持するので、多くのユニークな値を保持するカラムにlookupを設定すると大量にRAMを消費してしまいます。(ユニークレコード全件をRAMにロードするので、例えば100万件の100文字のユニークなレコードは100MBのRAMを消費します。)

lookupは以下のようなカラムに設定する事が推奨されています。:

・ カラムのユニークな値は10,000件以下

・ 重複した値とユニークな値の行数の比率が10:1以上のカラム (以下の2つのクエリの結果を比較)

   - SELECT COUNT(<COLUMN>) FROM...  
   - SELECT COUNT (DISTINCT <COLUMN>) FROM...

・ よく使用するカラム(使用頻度の低いカラムに設定しても無駄にRAMを消費するだけ)

カラムにlookupを設定するには以下のようにcommentに'lookup'を追加します。

   mysql> create table ...
   (...
   <<column name>> <<column type>> ... comment 'lookup' ...
   ...)
   engine=brighthouse;

まとめると、メモリを十分確保できる環境では、使用頻度が高く、ユニークな値が10,000件以下、
重複とユニークレコードの比率が10:1以上のCHAR, VARCHARカラムに対するlookupの設定が
パフォーマンスの向上に有効だと言えます。

★Have a nice open source day★
KSK Analytics Infobright Team

トラックバック(0)

このブログ記事を参照しているブログ一覧: Performance tips: lookupカラムの利用

このブログ記事に対するトラックバックURL: http://www.blog.infobright-partner.jp/mt/mt-tb.cgi/353

コメントする