[groonga-dev,01334] Re: utf8_unicode_ci使用時の検索結果について

Back to archive index

mail_babir****@yahoo***** mail_babir****@yahoo*****
2013年 4月 26日 (金) 15:03:59 JST


田辺です。

以下の手順で簡単にベンチマークできますので、一応ご報告させて頂きます。

mysqlを直接操作すると、実行時間がかなり切り捨てられてしまうので、プロファイリングを有効にして、クエリ実行後にSHOW PROFILE;してみると正確かと思います。

・テストデータ登録
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `main` varchar(255) NOT NULL COLLATE 'utf8_unicode_ci',
  PRIMARY KEY (`id`)
) ENGINE=myisam DEFAULT CHARSET=utf8;

INSERT INTO `test`(`main`) VALUES ('とらっくばっく テスト');
INSERT INTO `test`(`main`) VALUES ('とらっく myisam');
INSERT INTO `test`(`main`) VALUES ('だみー nil');
INSERT INTO `test`(`main`) (SELECT `test`.`main` FROM `test`, `test` AS `t1`, `test` AS `t2`);
INSERT INTO `test`(`main`) (SELECT `test`.`main` FROM `test`, `test` AS `t1`, `test` AS `t2`);
ALTER TABLE `test` ADD FULLTEXT (`main`);

CREATE TABLE `test2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `main` varchar(255) NOT NULL COLLATE 'utf8_unicode_ci',
  PRIMARY KEY (`id`)
) ENGINE=mroonga DEFAULT CHARSET=utf8;

INSERT INTO `test2` SELECT * FROM `test`;
ALTER TABLE `test2` ADD FULLTEXT (`main`) COMMENT 'parser "TokenDelimit"';

・ベンチマーク
RESET QUERY CACHE;

SELECT * FROM  `test` WHERE MATCH (`main`) AGAINST ('て*' IN BOOLEAN MODE) LIMIT 1;

SELECT * FROM  `test2` WHERE MATCH (`main`) AGAINST ('て*' IN BOOLEAN MODE) LIMIT 1;

手元のphpMyAdmin上では、それぞれ以下の結果となりました。
クエリの実行時間 0.0005 秒
クエリの実行時間 0.0085 秒


田辺公平




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