MySQL InnoDB FTSで簡単に全文検索の性能測ってみた

前回MySQL InnoDB FTSで機能的に全文検索できるところまでやったけど、大量にデータ投入して簡単に性能測ってみた。
マシンはMacBook Pro (Retina, 13-inch, Late 2013/CPU: 2.4 GHz Intel Core i5/メモリ:8 GB 1600 MHz DDR3)上で動くVirtualBox仮想マシン(CPU:1コア/メモリ4GB)です。

投入したデータは87万件ほど。

mysql> select count(*) from commits;
+----------+
| count(*) |
+----------+
|   878843 |
+----------+
1 row in set (1.05 sec)

普通のLIKE検索だと3.24秒ぐらい。

mysql> select count(*) from commits where message like '%fix%';
+----------+
| count(*) |
+----------+
|   232147 |
+----------+
1 row in set (3.24 sec)

全文検索だと0.20秒ぐらい。

mysql> select count(*) from commits where match(message) against ('+fix' in boolean mode);
+----------+
| count(*) |
+----------+
|   159633 |
+----------+
1 row in set (0.20 sec)
-----------

うん。だいぶ実用的な速度になったんじゃないでしょうか。ヒット件数が違うので純粋に同じ検索方法ではないのだけど、やりたいことは正確性あんまりこだわらない用途だし、検索結果とか初めの100件ぐらいしかみんな見ないし大丈夫。