Shinichi Fujikawa
f-shi****@milks*****
2008年 1月 7日 (月) 16:31:23 JST
えふしんです。 お世話になります。 レスありがとうございます。 遅くなって申し訳ございません。 > またCREATE/ALTERなどの操作の後に > #sql_****_*.MYDなどのファイルが残っている場合、Sennaの > インデックスから指定したフラグ(ngram、split_alpha等)が > 落ちている可能性があります。この場合は、 > show senna statusでフラグ落ちが出ていないか確認して下さい。 あまり理屈がわかってないのですが、頑張ってみます。 Tritonn 1.0.8に入れ替えてからは、一度だけ一時ファイルが残っていました。 1.0.7の頃は毎日ファイルが残っていましたが、この正月を挟んでは 一度きりです。 -rw-rw---- 1 mysql mysql 3470052 12月 29 12:03 #sql_61ad_0.MYD -rw-rw---- 1 mysql mysql 1024 12月 29 12:03 #sql_61ad_0.MYI -rw-rw---- 1 mysql mysql 2509432 12月 29 12:03 #sql_61ad_1.MYD -rw-rw---- 1 mysql mysql 1024 12月 29 12:03 #sql_61ad_1.MYI ただアクセス数も少なかったでしょうから、また負荷が上がった時に どうなるかを注視してみたいと思います。 > > あと、再現SQLとかもし分かれば教えていただけると助かります。 > よろしくおねがいたします。 上記ですが、このSQLで死んだ!という明確な自信がないのですが、 上記一時ファイルの中身であろう内容で、かつ、インデックスが壊れると、 このselectが失敗するというものでよろしいでしょうか? PHPのソースから拾ってきたものなので、値がプレースフォルダには なっているのですが、付け足し付け足しでなってしまった、 お恥ずかしいSQLではありますが、 ------------------------------------ ( select SQL_CALC_FOUND_ROWS id,author_id , item ,write_date ,protected ,atuser,created_on from view_log as log inner join friend_bind as fb on log.author_id = fb.fid where log.created_on >= ? and (fb.uid = ? and ((fb.type in (0,1) and log.protected = 0) or (log.protected = 1 and fb.type = 1))) ) UNION ( select log2.id ,author_id , item ,write_date ,protected , atuser,created_on from view_log as log2 inner join log_bind on log2.id = log_bind.log_id where log2.created_on >= ? and log_bind.owner_id = ? ) order by write_date desc limit 10 ; ------------------------------------ 見てわかるとおり、この部分でsennaのインデックスは利用していません。 > Tritonn 1.0.8でも1つそれ系のバグを修正しています。 > これは重たいSELECTを実行する際、高負荷の環境下だと > 一時ファイルが残り、かつmysqldがその後落ちる不具合 > (いわゆるマルチスレッドバグ)があり、それを直しました。 なお別の環境での話なのですが、本不具合は、Senna1.0.x系では 起きない問題でしょうか? よろしくお願いいたします。 -- えふしん (Shinichi Fujikawa) <f-shi****@milks*****> F's Garage http://www.milkstand.net/fsgarage Movatwitter http://movatwitter.jp