Tasuku SUENAGA
a****@razil*****
2006年 10月 23日 (月) 14:52:49 JST
末永です。 Windows版でテストプログラムを走らせて検証をしてみました。 Windowsについては、 インストール手順等を詳しく書いておりませんでした。 MySQLの文字コードをEUCにした場合には、 MeCabの辞書をEUCとして作成する必要となります。 Windows版のMeCab同梱の辞書は、 デフォルトでShift-JISで作成されています。 辞書の再作成を行っていなかった場合には、 行ってみてください。 N-gramを用いたインデックスを作成した場合には、 辞書の再作成は必要ありません。 辞書の再作成を行っていた場合、 MySQLのデータディレクトリ中、 拡張子SEN.l、もしくは拡張子SEN.l.xxxのファイルの数はいくつでしょうか? これらのファイルは全てメモリ上にロードされる可能性があります。 よって、 lファイルが肥大化した場合にはメモリを大量に使う可能性があります。 koshi****@sc***** wrote: > 返答ありがとうございます。雑煮です。 > >> 末永です。 >> >> 現在Windows版は、さまざまな検証が尽くせていない状態です。 >> よろしければ、詳細な再現手順を教えていただけないでしょうか。 > > 再現手段についてですが、正直前に書いた事以外に特記事項がありません。 > 何の変哲もないシンプルなテーブルにinsertしただけでメモリがリーク > してしまいます。 > > CREATE TABLE test ( > id PRIMARY KEY INTEGER AUTO_INCREMENT, > text TEXT NOT NULL, > FULLTEXT INDEX (text) > conf TEXT; > ) type=MyISAM; > > テーブルの構文は以上です(名義を多少変更しています)。 > > 基本的にこれに > > INSERT INTO test (id,text,conf) values(数値,本文,内部フラグ); > > を行っているだけです。 > (本文はPHPのmysqli拡張により特殊文字がエスケープされています) > > クライアントにはPHPからmysqliを使っていますが、コマンドラインから > insertを試行しても似たような現象(メモリが開放されない)が起こるようです。 > > 設定その他については、前記の通り文字コードの設定をEUCに変更したのと > rootのパスワードを変更した程度です。 > インストールしたままの状態からその変更を行っただけなのでこれ以上 > 詳しい事が書けない状態です。 > > ---------- > koshi****@sc*****