null+****@clear*****
null+****@clear*****
2010年 10月 26日 (火) 14:11:15 JST
Tetsuro IKEDA 2010-10-26 05:11:15 +0000 (Tue, 26 Oct 2010) New Revision: 81e4add0e57c9ae960e5c2c6ed2e8cd8ae0e26b9 Log: added description about "column pruning" to userguid document. Modified files: doc/ja/source/userguide.rst Modified: doc/ja/source/userguide.rst (+24 -1) =================================================================== --- doc/ja/source/userguide.rst 2010-10-26 04:31:57 +0000 (81262ae) +++ doc/ja/source/userguide.rst 2010-10-26 05:11:15 +0000 (c0be665) @@ -7,7 +7,7 @@ インストール方法についてはこちらを参照して下さい: :ref:`install` -インストール後の動作確認 +インストール確認 ---------------------------- MySQLサーバの起動停止方法は通常のMySQLと同じです。 @@ -86,5 +86,28 @@ groongaストレージエンジンではデフォルトでログの出力を行 カラムの刈り込み ---------------------------- +groongaでは各カラムごとにファイルを分けてデータを格納する「カラムストア方式」が採用されており、groongaストレージエンジンではこの特性を活かすためにテーブルアクセス時に必要なカラムに対してのみアクセスを行う実装を行っています。 + +この高速化の仕組みはgroongaストレージエンジン内部で自動的に行われるため、特に設定などを行う必要はありません。 + +例えば以下のようにカラムが20個定義されているテーブルが存在するものと仮定します。 :: + + CREATE TABLE t1 ( + c1 INT PRIMARY KEY AUTO_INCREMENT, + c2 INT, + c3 INT, + ... + c11 VARCHAR(20), + c12 VARCHAR(20), + ... + c20 DATETIME + ) ENGINE = InnoDB DEFAULT CHARSET utf8; + +この時、以下のようなSELECT文が発行される場合、groongaストレージエンジンではSELECT句およびWHERE句で参照しているカラムに対してのみデータの読み取りを行ってSQL文を処理します(内部的に不要なカラムに対してはアクセスしません)。 :: + + SELECT c1, c2, c11 FROM t1 WHERE c2 = XX AND c12 = "XXX"; + +このケースではc1,c2,c11,c12に対してのみアクセスが行われることになります。 + 行カウント高速化 ----------------------------