MySQL
の全てのカラム型にはインデックスを張ることができます。SELECT
操作のパフォーマンスの改善には、対応するカラムにインデックスを使用することが最善の方法です。
テーブルあたりの最大インデックス数とインデックスの最大長は、ストレージエンジンごとに定義されます。See 章 7. MySQL のテーブル型。ストレージエンジンのすべてで、1 テーブルあたり 16 以上のインデックスと 256 バイト以上のインデックス長がサポートされます。
CHAR
型および VARCHAR
型のカラムでは、カラムの先頭部分をインデックス化できます。これは、カラム全体をインデックス化する場合と比較して大幅に高速になり、所要ディスク領域も少なくて済みます。カラムの先頭部分をインデックス化する
CREATE TABLE
ステートメント構文は次のようになります。
INDEX index_name (col_name(length))
この例では、name
カラムの最初の
10 文字のインデックスが作成されます。
mysql>CREATE TABLE test (
->name CHAR(200) NOT NULL,
->INDEX index_name (name(10)));
BLOB
型および TEXT
型のカラムでは、カラムの先頭部分をインデックス化する必要があります。インデックスが張れる部分の最大長は
255 バイトです。
MySQL バージョン 3.23.23 以降は、特殊な
FULLTEXT
インデックスも作成できます。これは全文検索に使用されます。FULLTEXT
インデックスは、MyISAM
テーブル型でのみ、CHAR
、VARCHAR
、および
TEXT
カラムに限ってサポートされます。
フルテキストインデックスの作成は常にカラム全体を対象として、先頭部分(プリフィックス)のインデックス化は行われません。詳細については、項6.8. 「MySQL 全文検索」
を参照してください。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.