mysql:11716
From: Kenta Hashimoto <Kenta Hashimoto <kem@xxxxxxxxxx>>
Date: Thu, 07 Jul 2005 23:10:24 +0900
Subject: [mysql 11716] Re: 全文検索と他条件の組み合わせ
はしけむです。 ありがとうございます。 >>「じゃがいも の検索結果 8031件」というような表示 > > ここが一番苦労する箇所になるでしょうね。 そうなんですよ。レコード数の表示も、頭を悩ませている部分の一つです。 現在、とろうとしている解決策は、検索フレーズとレコード数を対応させた サマリテーブルを作ってしまうというものです。 そして、サマリテーブルに無い検索フレーズで検索された場合に、 はじめてSELECT COUNT を行い、 サマリテーブルに、その検索フレーズの行を追加するという仕組みに しようかと考えています。 > LIMIT 0,10 で判定対象がインデックスデータだけなら 10 件目が見つかれば > そこで終了ですが、LIMIT 8000,10 ならどうなるでしょうか? これは、「次へ≫」を押していっても、せいぜい20ページ以内の ユーザがほとんどだろうという前提で進めようと思っています。 なので、LIMIT 200,10 程度が快速に動けば、問題ないです。 > 個人的には色々とごちゃごちゃ捏ね繰り回すくらいなら、 > 1GBぐらいのメモリを積んで MySQL へのメモリ割り当てを増やす方法にも > 一票投票しておきます。 メモリは、2GB積んでいるので、インデックスは、メモリに乗るサイズに なるとは思います。 それにしても、1日数十万回の検索が行われる予定なので、クエリの速度を ぎりぎりまで高めておく必要があり、試行錯誤を行っています。 T.Sasaki wrote: > 佐々木です。 > > >>「じゃがいも の検索結果 8031件」というような表示 > > > ここが一番苦労する箇所になるでしょうね。 > 全件数をカウントするにはインデックス全データに対する判定を完了させる > 必要があり、FULLTEXT インデックスのサイズが鍵になります。 > もしインデックス領域が全てメモリ上に乗る、またはヒットするデータの > 範囲がインデックス上のごく一部分なら、はしけむさんのアイデアで > 上手く行く可能性も出てくるんじゃないかと思います。 > Oracle なんかだと、事前にインデックスやテーブルをメモリ上へ展開して、 > 検索速度を稼ぐチューニングをすることがあります。 > MySQL で出来たかどうか、ちょっと知識不足で分かりませんが・・・。 > > > >>1ページに10件ずつ表示して、「次へ≫」というリンクで、 >>次の10件が見れるようなページを作ろうとしています。 > > > これも主キーのように1件分のインデックスデータサイズが小さければ > 楽なんですが、FULLTEXT インデックスみたいに大きいと厳しいような気がします。 > LIMIT 句は実際にレコードを返す段階で処理されますから。 > LIMIT 0,10 で判定対象がインデックスデータだけなら 10 件目が見つかれば > そこで終了ですが、LIMIT 8000,10 ならどうなるでしょうか? > 少なくとも LIMIT 0,10 と同じようには行かないと思います。 > 主キーとか Oracle の ROWID (物理的な格納アドレス) みたいなのが相手なら > 色々な技が使えるでしょうけど・・・。 > > 個人的には色々とごちゃごちゃ捏ね繰り回すくらいなら、 > 1GBぐらいのメモリを積んで MySQL へのメモリ割り当てを増やす方法にも > 一票投票しておきます。
11693 2005-07-06 16:07 [Kenta Hashimoto <kem] 全文検索と他条件の組み合わせ 11694 2005-07-07 00:55 ┣[UNO Shintaro <uno@xx] 11697 2005-07-07 09:58 ┗["T.Sasaki" <papasan2] 11706 2005-07-07 20:18 ┗[Kenta Hashimoto <kem] 11707 2005-07-07 20:47 ┗["T.Sasaki" <papasan2] 11712 2005-07-07 21:39 ┗[Kenta Hashimoto <kem] 11713 2005-07-07 21:58 ┗["T.Sasaki" <papasan2] 11714 2005-07-07 22:14 ┗[Kenta Hashimoto <kem] 11715 2005-07-07 22:56 ┗["T.Sasaki" <papasan2] -> 11716 2005-07-07 23:10 ┣[Kenta Hashimoto <kem] 11717 2005-07-07 23:17 ┗[Kazuhiro Osawa <ko@x] 11719 2005-07-08 00:14 ┣[Kenta Hashimoto <kem] 11720 2005-07-08 06:25 ┗["T.Sasaki" <papasan2] 11734 2005-07-09 13:45 ┗[Kazuhiro Osawa <ko@x] 11735 2005-07-09 20:31 ┣["T.Sasaki" <papasan2] 11736 2005-07-12 15:33 ┗["Naoi Masaaki" <naoi] MySQLでの最大項目数につきまして 11737 2005-07-12 16:33 ┣[Tetsuro IKEDA <ikdtt] 11739 2005-07-12 17:42 ┃┗["Naoi Masaaki" <naoi] 11738 2005-07-12 17:10 ┗[Hiroshi Moriyama <mt] 11740 2005-07-12 17:47 ┣["Naoi Masaaki" <naoi] 11742 2005-07-13 20:08 ┗["T.Sasaki" <papasan2]