yasuoza diary

web and life

mroongaラッパーモードのベンチマーク

MySQLで全文検索をさせたくて、

  • 素のカラム
  • MySQL(inonDB)のインデックス
  • 高速な全文検索エンジンmroongaのラッパーモード

のそれぞれに対して対して全文検索を行い、そのベンチマークを取りました。

テーブル定義文

ベンチマーク実行プログラムmysqlカラムの検索ワード頭に%を付けないのはインデックスを使った検索を有効にするためです

結果

       user     system      total        real
   0.180000   0.090000   0.270000 ( 45.093617) #素のカラム
   0.050000   0.030000   0.080000 (  1.081635) #MySQLインデックス
   0.040000   0.030000   0.070000 (  1.024571) #mroonga

となり、mroongaがMySQLのインデックスよりも高速に検索を行なっている事がわかりました。

mroongaのラッパーモードの良さは速度だけではなくその導入のしやすさにあると思います。 mroongaのインストールの方法は公式のインストールガイドに詳しく載っていますし、既存のテーブルをmroongaのラッパーモードに変更したい時は全文検索エンジンmroonga導入の試行錯誤で説明されている通り

1
ALTER TABLE _table_name_ ENGINE = mroonga COMMENT = 'engine "innodb"' DEFAULT CHARSET utf8;

のように記述することで変更可能です。 ここらへんのことは公式のリファレンスにきちんとまとめられているので、そっちを見るといいと思います。

レンタルサーバを借りている人や、自分のサーバを持っている人はRails + Active Admin + mroongaで自分や特定の範囲の人用に高速で検索できる情報共有システムを簡単に作れそうです。 mroongaすごいなー。