kentoku
kento****@gmail*****
2012年 6月 7日 (木) 02:01:50 JST
斯波です。 バグのご連絡ありがとうございます。 mroongaのテーブルパーティションのサポートの件につきましては、 以下のチケットで対応させて頂いております。 http://redmine.groonga.org/issues/1391 なお、現在のところmroongaではパーティションを 直接ご利用頂くことはできませんが、 パーティションとmroongaの組み合わせを どうしても試したいという場合には、我田引水で恐縮ではございますが、 Spiderバンドル版のMySQLとmroongaを組み合わせて利用して頂き、 以下のように、パーティションに対応しているVPストレージエンジンを mroongaのテーブルにかぶせる形で利用して頂くことが可能です。 なお、Spiderバンドル版のMySQLは、MySQLにパッチをあてており、 テーブルパーティショニング機能と組み合わせて、FULLTEXTが 利用可能です。 ---- create table文の例 start ---- CREATE TABLE t1 ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=mroonga DEFAULT CHARSET=utf8; CREATE TABLE t2 ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=mroonga DEFAULT CHARSET=utf8; CREATE TABLE t3 ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=mroonga DEFAULT CHARSET=utf8; CREATE TABLE t4 ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=mroonga DEFAULT CHARSET=utf8; CREATE TABLE t5 ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=mroonga DEFAULT CHARSET=utf8; CREATE TABLE t6 ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=mroonga DEFAULT CHARSET=utf8; CREATE TABLE t7 ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=mroonga DEFAULT CHARSET=utf8; CREATE TABLE t8 ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=mroonga DEFAULT CHARSET=utf8; CREATE TABLE test_data ( `id` int(11) NOT NULL AUTO_INCREMENT, `ENGLISH` text, `JAPANESE` text, `LV` text NOT NULL, PRIMARY KEY (`id`), KEY `Index_Lv` (`LV`(20)) USING BTREE, FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' ) ENGINE=VP DEFAULT CHARSET=utf8 PARTITION BY KEY(`id`) ( PARTITION pt1 COMMENT 'table_name_list "t1"', PARTITION pt2 COMMENT 'table_name_list "t2"', PARTITION pt3 COMMENT 'table_name_list "t3"', PARTITION pt4 COMMENT 'table_name_list "t4"', PARTITION pt5 COMMENT 'table_name_list "t5"', PARTITION pt6 COMMENT 'table_name_list "t6"', PARTITION pt7 COMMENT 'table_name_list "t7"', PARTITION pt8 COMMENT 'table_name_list "t8"' ); ---- create table文の例 end ---- Spiderバンドル版MySQLはこちら http://spiderformysql.com/download_spider.html パフォーマンスの問題についての情報も、お待ちしております。 どうぞ、よろしくお願いいたします。 2012年6月6日 14:20 磯部 和広 <k-iso****@rozet*****>: > いつもお世話になっております。 > > >すみません、もしよかったら問題が発生したSQLを教えてもらえま > >せんか? > > > 再現用のcreate table文を作成しました。 > > [k-isobe @ PMJ-MySQL1 ~]$ mysql -u root test < by_key.sql > ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query > [k-isobe @ PMJ-MySQL1 ~]$ cat by_key.sql > CREATE TABLE test_data ( > `id` int(11) NOT NULL AUTO_INCREMENT, > `ENGLISH` text, > `JAPANESE` text, > `LV` text NOT NULL, > PRIMARY KEY (`id`), > KEY `Index_Lv` (`LV`(20)) USING BTREE, > FULLTEXT KEY `ENGLISH` (`ENGLISH`) COMMENT 'parser "TokenDelimit"', > FULLTEXT KEY `JAPANESE` (`JAPANESE`) COMMENT 'parser "TokenDelimit"' > ) ENGINE=mroonga DEFAULT CHARSET=utf8 PARTITION BY KEY(`id`) PARTITIONS 8; > [k-isobe @ PMJ-MySQL1 ~]$ > > > > それとパフォーマンスの件ですが。 > > 千五百万件のテーブルに対して > 1セッションで100回select count(1)した場合 > 2秒が6秒になった、というオーダーです。 > > こちらに対しては再現用のダミーデータの作成プログラムなど > ちょっと簡単には出来そうにないので、お待ちください。 > > > (2012/06/06 12:44), Kouhei Sutou wrote: >> 須藤です。 >> >> In <4FCC9****@rozet*****> >> "[groonga-dev,00923] mroongaストレージエンジンとパーティションの併用について" on Mon, 04 Jun 2012 19:51:22 +0900, >> 磯部 和広 <k-iso****@rozet*****> wrote: >> >>> ■概要■ >>> >>> mroongaストレージエンジンでパーティションを作成しようとするとエラーにな >>> り作成できません。 >>> 下記のような行がmysqlのエラーログに出現します。 >>> >>> /usr/local/mysql/lib/plugin/ha_mroonga.so(_ZN10ha_mroonga24primary_key_is_clusteredEv+0x7)[0x7fe66bde2b27] >> すみません、もしよかったら問題が発生したSQLを教えてもらえま >> せんか? >> >>> データが千5百万件あります。 >>> >>> がテーブルにジャンルを示すカラムを追加しインデックスを張り、 >>> ジャンル別に検索して高速化しようとしても出来ませんでした。 >>> >>> 常に全件のデータに対してFullTextサーチをしてから >>> ジャンルで絞り込む、という動きをするようです。 >>> >>> また、単にジャンルだけを指定して検索をしても >>> インデックスを張ってあるのに全件サーチなります。 >> こちらも、SQLを教えてもらえると助かります。。。 >> > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev