MySQL+Senna(tritonn)で1億レコードのテーブルを扱えない現象に悩まされています。


現在2000万PV/Dayのサイトを運営しておりますが、
1億レコードを保持するテーブルにてmatch~againstにて全文検索を行うと
該当ワードを含むレコードが存在していてもHitしないという現象が発生しております。

同規模のDBを扱った経験のある方、または情報をお持ちの方がいらっしゃいましたら
是非ともご意見頂きたいと思っております。

<サーバ環境>
OS:CentOS5.5
メモリ:16GB
Senna:MySQL5.0.67+tritonn.1.0.12

よろしくお願い致します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/12/07 11:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kodairabase No.1

回答回数661ベストアンサー獲得回数80

ポイント200pt

インデックスサイズまたは語彙数がオーバーフローしているのではありませんか?
実際には256G word未満で動かなくなることがあります。

既知の制限事項・不具合
http://qwik.jp/senna/knownproblems.html

id:osamuaa

ご回答ありがとうございます。

現在レコード数が約1億、ファイルサイズは30GB程度となっております。
気になるポイントは語彙数ですね・・・1レコードを複数に分割すると仮定すれば
あっという間に制限値を超えてしまいます(==
おそらくこれが原因でしょうか・・・。

公式の制限事項ページは完全に見落としておりました。
ありがとうございました!

2011/12/07 10:10:30
  • id:tdoi
    インデックスが壊れてるとかですかね。
    check tableとかしたら、エラーとかでません?
  • id:osamuaa
    myisamchk -r やdropからのcreate indexなど試しましたが
    特にエラーなどはなく、当該テーブル以外は問題なく動作しています。

    また、Hitしない現象もある程度傾向があり、
    検索ワード次第ですがある一定の日時以降のレコードがHitしないようです。
    蓄積数の限界のような感じでしょうか・・・。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません