Kentaro Hayashi
hayas****@clear*****
2017年 9月 29日 (金) 12:36:00 JST
To: 内山さん 林です。 On Sat, 9 Sep 2017 21:39:55 +0900 <toshio_uchiy****@mirro*****> wrote: > 須藤さま > > お世話になります。内山です。 > ご教示いただいた件、実験してみました。 > > $vi memory.sh > > #! /bin/sh > cat pgrn* > /dev/null > for c in pgrn*.c; do > cat $(echo $c | sed -e 's/\.c$//g')* > /dev/null > done > > のファイルを memory.sh として作りました。 > 結果、再起動のあと何もせず > > explain ( analyze, buffers ) SELECT id, video, track, content, > starttime, theme FROM manual AS P WHERE lower( content ) like > lower( '%algorithm%' ) and exists ( select video from manual AS C1 > where lower( content ) like lower( '%search%' ) and P.video = C1.video ) > ORDER BY vc DESC; > > という SQL 文の実行時間が 18 秒でした。テーブル manual には、content カラム > に > PGroonga のインデックスが作ってあります。 > 再起動のあと memory.sh を実行して同じ SQL 文を実行。その結果、実行時間は > 17秒でした。explain での両社の buffers: shared hit と read の値はほとんど > 変わりませんでした。 > なぜ、このことを報告したかと言いますと、わたくしはサービスがユーザーに > 受け入れられて仕事として認識されたら、128GB メモリーのマシンを > 購入してサービスの強化をはかりたいと考えています。その時に、cat pgrn* > > /dev/null > が効かないと、moovle ( http://moovle.org/ )サービスに問題が生じると > 思うからです。 > よろしくお願いします。 1. 何もしない場合のexplain => 18秒 2. 全部メモリに乗っけた場合 (cat pgrn* > /dev/null)のexplain => データなし 3. memory.shを実行した場合のexplain => 17秒 ということですよね。であれば2.の結果がどうだったんだろう? というのが気になりました。↑だとあんまり変わらない結果かもしれませんが。。。 インデックスと参照しているカラムが期待通りにメモリに乗っかった状態になっていない可能性がありそうな気がします。 以前、ls -al pgrn* の合計サイズが45GBという話をされていたので、 ls -la pgrn*.cもそれなりの容量を占めているのであれば乗り切らなかったのかもしれないですね。 その場合は[groonga-dev,04463] にあるように個別に調べる必要があるかもなぁという気がします。 あとはexplainの実際の出力はそれぞれでどうだったのかな?というのが気になりました。 -- Kentaro Hayashi <hayas****@clear*****> -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: 無し 型: application/pgp-signature サイズ: 833 バイト 説明: 無し URL: https://lists.osdn.me/mailman/archives/groonga-dev/attachments/20170929/a1b0b545/attachment.pgp