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 秒
田辺公平