Quantcast
Channel: Planet MySQL
Viewing all articles
Browse latest Browse all 1081

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

$
0
0

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向けの資料です。


PlanetMySQL Voting: Vote UP / Vote DOWN

Viewing all articles
Browse latest Browse all 1081

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>