mysql:11693
From: Kenta Hashimoto <Kenta Hashimoto <kem@xxxxxxxxxx>>
Date: Wed, 06 Jul 2005 16:07:08 +0900
Subject: [mysql 11693] 全文検索と他条件の組み合わせ
はじめまして。はしけむと申します。 現在、料理レシピを検索できるウェブサイトの構築を行っています。 SQLをいじりだして、2ヶ月程度です。 10万件程度のデータから、レシピを高速に検索したいのですが、 以下のようなクエリで行き詰っています。 アドバイスをいただけけると助かります。 SELECT ID FROM Recipe WHERE MATCH( 'Title,Description' ) AGAINST( '+"じゃがいも"' IN BOOLEAN MODE ) AND CategoryA = 4 AND CategorB = 2 このようなクエリをより高速にしたいのですが、 どのようにする方法がよいでしょうか? CagetoryA、CategoryB について、インデックスを使用できない でいることが、クエリが遅い原因だと考えています。 Categoryは、9種類あり、それぞれ、2〜8種類の値が入ります。 (Title、Descriptionは、UTF-8の文字列を分かち書きしてあります) 自分で考えた解決策としては、 案1:Categoryも文字列型にして、"CategoryA4 CategoryB2"のような値を 入れて、全文検索のインデックスに含める 案2:Categoryごとに、前もって別のテーブルを作っておく。 一日一回実行 INSERT RecipeA4 SELECT * FROM Recipe WHERE CategoryA = 4; 検索時(Categoryの条件は別に処理しておいて、) SELECT ID FROM RecipeA4 WHERE MATCH,,,, というものなのですが、これらの方法の可否、よりよい方法などについての アドバイスなどありましたら、非常に助かります。 よろしくお願いいたします。
-> 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]