読者です 読者をやめる 読者になる 読者になる

Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

MySQLでMyISAMからInnoDBに乗り換える際に知らないとハマる、怖い話

photo by byte MySQLといえば、巷ではInnoDBばかり注目され、MyISAMの地下アイドル化がにわかに語られる今日この頃、皆様いかがお過ごしでしょうか。 まあカジュアルにストレージエンジンを変換するだけで済むなら、簡単なのです。 -- legacy_my_tableをInno…

全文検索付きMySQL5.0から5.6への移行にまつわるお話をMySQL Casual Talks Vol.5にて発表しました #mysqlcasual

MySQL5.0から5.6へ移行するにあたり、全文検索機能をTritonnからmroongaへ乗り換えるというプロジェクトの体験記をお届けします。2013年10月25日開催のMySQL Casual Talks Vol.5での発表資料です。

2013年10〜12月開催の勉強会への登壇予定をお知らせします

この秋には3つの勉強会でお話させて頂けることになりました。 いずれも、データベース周りのお話を行う予定です。 photo by mari ce

gihyo.jpにて、MySQLで使える全文検索プロダクトmroongaに関する連載を始めました

MySQL 5.0+Sennaという組み合わせの「Tritonn」が広まり始めたのは2008年頃でしたでしょうか。 あれから月日が経つこと5年。2013年となった今、ドキュメントが陳腐化するMySQL 5.0を捨て、MySQL 5.6で使える全文検索プロダクト「mroonga」へ移行しようとあ…

mroongaで「API version for STORAGE ENGINE plugin is too different」というエラーが起きたときの対処法

以下のエラーが起きてしまった時の対処法を紹介します。 2013-06-04 17:36:01 21440 [ERROR] Can't open shared library 'ha_mroonga.so' (errno: 0 API version for STORAGE ENGINE plugin is too different)

mroongaのインストール/アンインストール時に発行するするクエリと、その用途をまとめて解説

mroongaのプラグインインストール・アンインストールを手動で行いたい方向けのメモ。 MySQLが起ち上がっていない状態で、プラグインをインストールした時にも必要ですね。 更新履歴 2014年1月8日:mroonga-3.07の新機能であるmroonga_escapeのトピックを追加…

mroongaで「ERROR 1005 (HY000): already used name was assigned」エラーが起きた際の復旧手順

存在しないテーブルなのに、テーブルが作れなくなった。 そんな現象に遭遇した時のトラブルシューティングを紹介します。 DROP TABLE ...の後にCREATE TABLE ....とした所、消したはずのテーブルが作れない show tables;を見る限り存在しないので、MySQLとし…

groonga/mroongaのトークナイザー(tokenizer)の挙動を追ってみる

トークナイズ機能は、全文検索機能に無くてはならない機能です。 欧米圏であれば、最低限スペース区切りに対応していれば実用的に使えます。 しかし、中国語、日本語、韓国語への対応をする場合には、CJK対応言われる実装が必要です。 汎用的な分かち書き(…

MySQL 5.5からの新機能、インデックスへのコメント付与を行う方法

MySQL 5.5より、インデックスへのコメント付与が可能となりました。 全文検索エンジンmroongaは、その機能を用いてFULLTEXTインデックスの生成方法を変えております。 インデックスコメントについての情報が少なかったので、紹介したいと思います。

mroongaのテーブルを、ストレージモードからラッパーモードに変換する方法

storageモードだとデータ型の扱いがMySQLでのそれと違い困っている。 そうだ、wrapperモードにしよう、と思い立った方向けの記事です。

mroongaのカテゴリを追加しました。

MySQLの全文検索プラグイン「mroonga」の記事が増えてきました。 なのでmysql-mroongaというカテゴリを追加し、一覧性を良くしました。 サイドバーのカテゴリ一覧からも辿れますし、以下URLからも参照できます。 http://y-ken.hatenablog.com/archive/catego…

groonga/mroongaの文字列正規化機能 (normalizer) の挙動を追ってみる

groonga/mroongaが標準で備える文字列正規化機能(ノーマライザ・normalizer)として、 いわゆるgroonga独自のnormalizer(NormalizerAuto)と呼ばれるもがあります。 これは、大文字・小文字だけでなく、全角・半角を同一視できるという UnicodeのNFKCを用い…

mroongaでparserとnormalizerを同時に指定する方法

mroonga-3.03より、インデックスのコメントにて、 parserとnormalizerを指定できるようになりました。 それぞれのスキーマ(テーブル構造)設計のサンプルを交えて紹介します。 その後に、mroongaで使えるparserとnormalizerの一覧を紹介します。

mroongaで特殊記号を用いた全文検索を行うときのエスケープ方法

mroongaで()~+><-*などの記号を含んだ文字列を検索しようとすると、以下のエラーが起きます。 ERROR 1064 (42000): failed to parse fulltext search keyword 本日はその対処法を紹介します。

CentOS6.xに最新版のMySQL5.6とmroongaを最速でRPMインストールする方法

CentOS-6.xの環境に MySQL-5.6.12 と フルテキスト検索ストレージエンジンであるmroongaの最新版を入れる方法を紹介します。 以下それぞれ、ステップを追って紹介します。 オラクル公式の MySQL-5.6 バイナリを yum (rpm)で入れる MySQL-5.6.12 対応の mroon…

groonga/mroongaの.mrnファイルがlock failedとなった場合の復旧方法

何らかの原因によりlock failedとなり、mroongaのテーブルを含むデータベースの 操作が出来なくなったときの復旧方法を紹介します。