Kouhei Sutou
kou****@clear*****
2016年 2月 3日 (水) 23:52:01 JST
須藤です。 In <20160****@orega*****> "[groonga-dev,03903] Re: PGRNファイルが開けない?" on Wed, 03 Feb 2016 14:46:56 +0900, 高見 直輝 <takam****@orega*****> wrote: > CREATE INDEXの時点ではOIDを使っているように見えるのですが、どうなのでしょ > うか? > てっきり、XXXの値がrelfilenodeの値に切り替わったのが原因ではないかと思っ > たのですが・・・。 CREATE INDEX直後はOIDもrelfilenodeも同じ値なんです。 > CREATE INDEX時にOIDがセットされている場合、REINDEXをしていない(relfilenode > の値に切り替わっていない)インデックスが消えてしまいませんか? REINDEXをしていないインデックスは絶対消えないようになってい ます。 > 次回アップデート時に既存インデックスの再作成が必要かどうか教えて下さい。 必要ありません。 VACUUM/ANALYZE後のロジックが間違っているだけなので、アップデー トすれば直るのです。 >> つまり、電源断をしなくても以下で再現します。 >> >> CREATE INDEX ...; >> REINDEX INDEX ...; >> ANALYZE; >> SELECT ...; > > 当方の環境ではREINDEXの前にpgrnファイルを削除しないと再現しないようなの > ですが、理由は分かりますでしょうか? たぶん、SELECTのときにシーケンシャルサーチになっているんだと 思います。最後のSELECTをINSERTに変えるとエラーメッセージがで ると思います。 > ファイル削除をやっていない環境であればアップデート時にインデックス再作成 > が不要になる、となってくれると色々と助かるのですが・・・。 はい、インデックス再作成は不要です。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ リーダブルコードワークショップ: http://www.clear-code.com/services/code-reader/readable-code-workshop.html