[前][次][番号順一覧][スレッド一覧]

mysql:16004

From: HAYASHI Kentaro <HAYASHI Kentaro <hayashi@xxxxxxxxxx>>
Date: Mon, 29 Jul 2013 11:08:29 +0900
Subject: [mysql 16004] [ANN] mroonga 3.06


林です。

今日は毎月恒例の肉の日ですね。

まずはじめに、隔週連載groongaの紹介です。

  これまでも、groonga.orgにて利用事例 http://groonga.org/ja/users/ を
  紹介してきましたが、それとは別に、http://gihyo.jp/にてgroonga関連の記事の連載を
  隔週連載groongaとして続けています。
  まだgroongaを知らない人にもWebの連載記事を通じて知ってもらいたいというのが動機です。
  現在第7回まで公開しています。

    * 第7回 [実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(2)
      http://gihyo.jp/dev/clip/01/groonga/0007

  過去の記事(第1回から第6回)については隔週連載groongaのページを参照してください。

    http://gihyo.jp/dev/clip/01/groonga

  似たような動機で、毎週木曜にQiitaでのgroonga関連の情報提供も続けています。
  こちらも参考にどうぞ。

    http://qiita.com/groonga


mroonga 3.06をリリースしました。
  http://mroonga.org/ja/docs/news.html#release-3-06

mroongaはMySQL 5.1/5.5/5.6、MariaDB 5.3/5.5/10.0で利用できる全文検
索・位置情報検索可能なストレージエンジンです。mroongaは
Tritonnの後継プロジェクトです。

ドキュメント:
  http://mroonga.org/ja/
インストールガイド:
  http://mroonga.org/ja/docs/install.html

mroongaでよくあるMySQLとのバージョン不一致で
うまくインストールできなかったんだけど、、、というトラブルも
リリース直後は遭遇しにくいので、この機会にmroongaを試してみるのは
いかがでしょうか。

みなさんからのフィードバックをお待ちしています!

1.20より前のバージョンからアップグレードする場合は以下にある
手順を使ってください。
  http://mroonga.org/ja/docs/news.html#release-1-20

1.20からアップグレードする場合は以下にある手順を使ってくださ
い。
  http://mroonga.org/ja/docs/news.html#release-2-00

2.00か2.01からアップグレードする場合は、以下の手順でパッケージ
署名用の新しい鍵をインポートしてください。

  http://mroonga.org/ja/docs/news.html#release-2-02

2.00以降でストレージモードにてマルチカラムインデックスを
使っている場合は以下の手順でインデックスを作り直して
ください。

  http://mroonga.org/ja/docs/news.html#release-2-03

2.04以降でストレージモードにてSETカラムもしくは要素数が256より
少ないENUMを使用している場合は、以下の手順でデータベースを
再作成してください。

  http://mroonga.org/ja/docs/news.html#release-2-05

2.05以降でマルチカラムインデックスをVARCHARやCHAR型に対して使っている
場合は、以下の手順でインデックスを再作成してください。

  http://mroonga.org/ja/docs/news.html#release-2-08

2.08以降でTIMESTAMP型のカラムを使っているテーブルがあれば、
データベースを再作成してください。
CHAR(N)を主キーとしているテーブルがあれば、インデックスを再作成してく
ださい。

  http://mroonga.org/ja/docs/news.html#release-2-09

今回のリリースの主なトピックは以下の通りです。

  * mroonga_action_on_fulltext_query_errorセッション変数をサポート
  * Fedora 19をサポート

○ mroonga_action_on_fulltext_query_errorセッション変数をサポート

今回のリリースではmroonga_action_on_fulltext_query_errorセッション変数を
サポートしました。

これは、全文検索クエリを実行したときのエラーをどのように扱うかを
制御するための変数です。

  http://mroonga.org/ja/docs/reference/server_variables.html#mroonga-action-on-fulltext-query-error

これまでクエリのエラーは、エラーを報告し、ログにも出力するようにしていました。
ただし、アプリケーション側でログをとっている場合に、エスケープが適切にできていないときのエラーが
その他のシンタックスエラーに埋もれてしまうことがありました。
これをなんとかしたいという要望に応えたものです。

以下の4種類を設定することができます。

* ERROR エラーを報告する。ログは無効です。
* ERROR_AND_LOG エラーを報告する。ログは有効です。(これがデフォルトです)
* IGNORE エラーを無視する。ログは無効です。
* IGNORE_AND_LOG エラーを無視する。ログは有効です。(これはInnoDBと同様です)

例えば、以下のようなシンタックスエラーになるクエリ( '(' が適切にエスケープされていない )を例に考えてみます。

  SELECT * FROM `test_mroonga` WHERE MATCH(`main`) AGAINST('(仮)*' IN BOOLEAN MODE);

ERROR_AND_LOGもしくはIGNORE_AND_LOGを設定した場合、以下のようにログが記録されます。

  ...
  2013-07-26 17:29:03.297739|e|ba4d8940|Syntax error! ((仮)*)
  ...
  2013-07-26 17:29:03.300049|e|ba4d8940|failed to parse fulltext search keyword: <(仮)*>: 
  ...
  
一方、ERRORもしくはIGNOREを設定した場合、以下のようにログが記録されます。

  ...
  2013-07-26 17:38:53.847593|e|ba4d8940|Syntax error! ((仮)*)
  ...
  
全文検索のクエリのパースエラーログの記録の有無に影響していることがわかります。

ERRORとIGNOREの違いは mroonga_action_on_fulltext_query_error を表示し、
上記の全文検索のクエリを実行したときの様子からわかります。

  $ mysql < error.sql
  Variable_name Value
  mroonga_action_on_fulltext_query_error    ERROR
  ERROR 1064 (42000) at line 23: failed to parse fulltext search keyword: <(仮)*>: 
  $
  
ERRORだと上記のようにエラーが報告されることがわかります。

  $ mysql < error.sql
  Variable_name Value
  mroonga_action_on_fulltext_query_error    IGNORE
  $
  
IGNOREだと上記のようにエラーが無視されることがわかります。

○ Fedora 19をサポート

今回のリリースでは、2013年7月2日にリリースされたFedora 19のサポートを
始めました。その代りにFedora 18のサポートをやめています。

Fedora 19からはMariaDBが採用されました。
それにともないMySQLのパッケージ名も変更されています。

Fedora 19ではsudo yum install mysqlとするとMariaDBがインストールされるように
なるなど、MySQLをインストールすることもできる、という扱いになっています。

今回のリリースでMariaDB対応のmroongaも同時にリリースする予定でしたが、
パッケージに動作上の問題が発覚したため、MariaDB対応版パッケージであるmariadb-mroongaは
一時的にリリースを保留としました。

パッケージをビルドするための仕組みはできているので、Fedora 19では
将来的にMySQL (community-mysql)向けにはmysql-mroongaを、MariaDB向けには
mariadb-mroongaをインストールすれば使えるようにする予定です。

○ 変更点

3.05からの変更点は以下の通りです。
  http://mroonga.org/ja/docs/news.html#release-3-06

改良
^^^^
  * mroonga_action_on_fulltext_query_error セッション変数を追加しました。
    これは不正なエスケープに対するエラーを報告する方法に影響します。 [groonga-dev,01529]
    [田辺公平さんが報告]
  * 行カウントの最適化がMySQL 5.5やMariaDB 10.xのラッパーモードでも有効になりました。
    [#1841] [groonga-dev,01523] [村上さんが報告]
    この最適化はストレージエンジンがトランザクションをサポートしている場合には動作しません。
  * Fedora 19に対応しました。
  * Fedora 18対応をやめました。

感謝
^^^^
  * 田辺公平さん
  * 村上さん


-- 
HAYASHI Kentaro <hayashi@xxxxxxxxxx>

[前][次][番号順一覧][スレッド一覧]