MySQL-5.5より、インデックスへのコメント付与が可能となりました。
mroongaは、その機能を用いてインデックスの生成方法を変えております。
インデックスコメントについての情報が少なかったので、紹介したいと思います。
テーブル構成
CREATE TABLE `foo_table` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
mroongaストレージエンジンを使ったサンプルでも紹介します。
これを使っていない限り、そうそうインデックスにコメントを追加する機会は無いと思います。
CREATE TABLE `mroonga_table` ( `id` int(11) NOT NULL, `data` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `search_data` (`data`) ) ENGINE=mroonga DEFAULT CHARSET=utf8;
コメント付きのインデックスを追加したい
ADD INDEX
インデックス名(インデックスを貼るカラム名) COMMENT 'コメント'
という記述を行います。
ALTER TABLE foo_table ADD UNIQUE INDEX `name` (name) COMMENT 'ほげほげ';
ALTER TABLE mroonga_table ADD INDEX `search_data` (data) COMMENT 'parser "TokenMeCab", normalizer "NormalizerAuto"';
コメント付きのインデックスを削除したい
COMMENTの中身を空にしたインデックスを作り直す事で出来ます。
ALTER TABLE foo_table DROP INDEX name, ADD INDEX name (name) COMMENT '';
ALTER TABLE mroonga_table DROP INDEX search_data, ADD INDEX search_data (data) COMMENT '';
既にあるインデックスにコメントを追加したい
こちらも、2つのクエリに分けずに、1クエリで行いましょう。
理由としては、本番環境で利用しているテーブルで分けて実行すると、インデックスが無い状態が発生するためです。
ALTER TABLE foo_table DROP INDEX name, ADD INDEX name (name) COMMENT 'ふがふが';
ALTER TABLE mroonga_table DROP INDEX search_data, ADD INDEX search_data (data) COMMENT 'parser "TokenMeCab", normalizer "NormalizerAuto"';
あわせて読みたい
mroonga向けの資料です。
- mroongaでparserとnormalizerを同時に指定する方法
http://y-ken.hatenablog.com/entry/mroonga-use-parser-and-normalizer-together - mroongaの文字列正規化機能(normalizer)の挙動を追ってみる
http://y-ken.hatenablog.com/entry/mroonga-normalizer-behavior
PlanetMySQL Voting: Vote UP / Vote DOWN