高見 直輝
takam****@orega*****
2016年 7月 13日 (水) 18:55:13 JST
高見です。 > > 実際に試してみました。 > > 1GBで新しいファイルが作られた時点でio_flushを実行したところ、テーブルが > > 空のときと比較して、使用されるメモリの容量に違いは見られませんでした。 > > ※双方共に60MB程度。 > > ファイルの増加によるメモリ使用量の変更は、それほど大きくない(1つあたり、 > > 数十KB程度?)と考えて良いのでしょうか? > > あれ、そうですか。「1GBで新しいファイルが作られた時点」とい > うのはpgrn.XXX.1みたいなファイルができるくらいデータを入れた > ということですよね? その通りです。 > その状態だとファイルサイズと同等(1GB)くらいの仮想メモリー > を使用する気がします。(実メモリーではなく仮想メモリーです。) > > 実メモリーの話だけをしているのであれば、ファイルの増加による > メモリー使用量の変更は、Groongaのテーブル・カラム(とくにイ > ンデックスカラム)が増えることに比べればそれほど大きくない、 > というのはその通りです。 現状、問題になるのが実メモリーだけなので、レコード数による増加は考慮しな くて良さそうです。 > >> 「Lexicon*」テーブルとそれらのテーブル内にあるカラムです。 > > > > 以下のもので全てでしょうか? > > 1.Sources* > > 2.Lexicon*_0 > > 3.Lexicon*_0._key > > 4.Lexicon*_0.index > > いえ、すべてではありません。 > > マルチカラムインデックスを使っている場合はLexicon*_1, > Lexicon*_2, ...というようなものが増えます。 > > なお、2.と3.は同じものなので3.は考えなくてよいです。 > > たぶん使っていないとは思いますが、jsonb型を使っている場合は > JSON*というテーブルが増えます。 > > > クエリの実行回数をなるべく少なくしたいのですが”_0”や”_key”、”index” > > は固定値として処理してしまって大丈夫でしょうか? > > マルチカラムインデックスを使っていないのであれば > > io_flush Lexicon*_0 > > だけでLexicon関連のテーブル・カラムはOKです。 > (--recursive yesはデフォルトなので明示的に指定しなくてもよいです。) > > (新しくインデックスを作成した場合は > 「io_flush --recursive no」も必要です。) > > > あと、データベースに対するコマンド(--recursive no)は各オブジェクト毎に > > 実行した方が良いのでしょうか?それとも最後に1回実行すれば良いのでしょう > > か? > > 最後に1回で十分です。 纏めると、 1.Sources* 2.Lexicon*_0 3.--recursive no ということですね。 ありがとうございました。 ----------------------------- 高見 直輝 <takam****@orega*****> 株式会社オレガ TEL:03-3267-0150 FAX:03-3267-0180