磯部 和広
k-iso****@rozet*****
2012年 6月 8日 (金) 11:34:26 JST
いつもお世話になっております。 Spiderはパーティショニングについて調べた際に見かけたのですが まさか、そっちと組み合わせるとOKだとは夢にも思いませんでした。 後日、実験して結果を報告します。 ※8パーティションにしているのは、CPUが8個あるためで 問い合わせ処理が内部的に8スレッドに別れる事を期待しています。 (2012/06/07 2:01), kentoku wrote: > 斯波です。 > > バグのご連絡ありがとうございます。 > > 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 > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev >