[groonga-dev,01970] Re: Mroongaで複合主キーを使ったテーブルにおける検索について

Back to archive index

Naoya Murakami visio****@gmail*****
2013年 12月 9日 (月) 08:33:16 JST


お世話になっております。村上です。

すいません、下記の件、追加の情報です。
検索が遅くなるパターンは、Groongaでselectをした場合のようです。
SQLでSELECTするとはやいです。

mysql> select app_id from ftext where app_id = "JP20010003153U";
+----------------+
| app_id         |
+----------------+
| JP20010003153U |
+----------------+
1 row in set (0.02 sec)

mysql> select mroonga_command("select ftext --filter 'app_id ==
\"JP20010003153U\"' --output_columns app_id") as result;
+-----------------------------------------------------+
| result                                              |
+-----------------------------------------------------+
| [[[1],[["app_id","ShortText"]],["JP20010003153U"]]] |
+-----------------------------------------------------+
1 row in set (1.61 sec)

mysql> select mroonga_command("select ftext --query app_id:JP20010003153U
--outp
ut_columns app_id") as result;
+-----------------------------------------------------+
| result                                              |
+-----------------------------------------------------+
| [[[1],[["app_id","ShortText"]],["JP20010003153U"]]] |
+-----------------------------------------------------+
1 row in set (1.61 sec)

以上、よろしくお願いします。


2013年12月9日 8:17 Naoya Murakami <visio****@gmail*****>:

> お世話になっております。村上です。
>
> Mroongaにおいて、以下のような複数カラムで主キーを作った場合、
> この主キーのうち1つで検索すると、検索パフォーマンスが芳しくありません。
>
> CREATE TABLE IF NOT EXISTS `text_multi` (
>   `id` varchar(20) NOT NULL,
>   `lang` varchar(2) NOT NULL,
>   `year` int(10) NOT NULL,
>   `text` text NOT NULL,
>   PRIMARY KEY (`id`,`lang`,`year`),
>   FULLTEXT INDEX `text` (`text`)
> ) ENGINE=mroonga DEFAULT CHARSET=utf8;
> INSERT INTO text_multi VALUES ("200","ja",2009,"今日は雨だ。");
>
> % groonga /var/lib/mysql/mrn_test.mrn "select text_multi"
>
> [[0,1386544345.81022,0.00187849998474121],[[[1],[["_id","UInt32"],["_key","ShortText"],["id","ShortText"],["lang","ShortText"],["text","LongText"],["year","Int32"]],[1,"200","200","ja","今日は雨だ。",2009]]]]
>
> <質問>
> Mroongaで複数のカラムで主キーを作った場合は、主キーのカラムは、
> インデックスを使って検索できないのでしょうか?
>
> _keyには、idのカラムのみの値が入っているように見えますが、idのみで
> 検索してもあまりパフォーマンスが良くありません。
>
> 別途、KEY `id` (`id`)を作ればはやく検索できそうですが、
> そのようにする必要がありますか?
>
> <環境>
> ・MariaDB10.0.6
> ・Groonga3.1.0
> ・Mroonga3.10
>
> 以上、よろしくお願いします。
>



groonga-dev メーリングリストの案内
Back to archive index