もっとも一般的なインデックスの種類には,単一カラムがあり,データ構造にそのカラムの値のコピーを格納し,対応するカラム値のある行を高速にルックアップできます。B在哪里
句内の=
、>
、≤
、之间的
、在
などの演算子に対応する特定の値,値のセット,または値の範囲をすばやく見けることができます。
テブルあたりの最大ンデックス数とンデックスの最大長は,ストレジエンジンごとに定義されます。第15章「代替ストレ,ジエンジン」を参照してください。すべてのストレージエンジンは,1テーブルあたり16個以上のインデックスと256バイト以上の合計インデックス長をサポートします。ほとんどのストレ,ジエンジンでは,制限が高く設定されています。
プリフィクス@ @ンデックス
ンデックス指定で
構文を使用して,文字列カラムの先頭のcol_name
(N
)N
文字のみを使用する@ @ンデックスを作成できます。このようにカラム値のプリフィクスのみのインデックスを作成すると,インデックスファイルをかなり小さくできます。团
または文本
カラムにaapl . aapl .ンデックス設定する場合,aapl .ンデックスのプリフィクス長を指定する必要があります。例:
CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
プリフィクスは最大1000バト長(innodb_large_prefix
を設定していないかぎり,InnoDB
テブルの場合は767バト)です。
プリフィクスの制限はバ电子邮箱ト単位で測定されますが,创建表
ステ,トメントでのプリフィクス長は文字数で解釈されます。複数バ@ @ト文字セットを使用するカラムのプリフィクス長を指定する場合はこれを考慮してください。
全文@ @ンデックス
全文
ンデックスの作成も可能です。これらは全文検索に使用されます。InnoDB
およびMyISAM
ストレ,ジエンジンのみが,字符
、VARCHAR
,および文本
カラムに対してのみ,全文
ンデックスをサポ,トしています。インデックス設定は常にカラム全体に対して行われ,カラムプリフィクスインデックス設定はサポートされていません。詳細にいては,セクション12.9“全文検索関数”を参照してください。
最適化は,単一のInnoDB
テ,ブルに対する特定の種類の全文
クエリ,に適用されます。これらの特性を持クエリは特に効率的です。
ドキュメントidまたはドキュメントidと検索ランクのみを返す
全文
クエリ。一致する行をスコアの降順でソ,トし,
限制
句を適用して,上位n個の一致する行を取得する全文
クエリ。この最適化を適用するには,在哪里
句がなく,降順の単一の命令
句のみがある必要があります。検索語に一致する行の
COUNT (*)
値のみを取得し,追加の在哪里
句がない全文
クエリ。在哪里
句を> 0
比較演算子を使用せずに,匹配(
とコ,ディングします。文本
)反对(’other_text
”)
空間@ @ンデックス
空間デタ型にンデックスを作成することもできます。現在、MyISAM
のみが空間型へのrリンデックスをサポトしています。ほかのストレジエンジンは,空間型のンデックス設定にbリを使用します(存档
を除きます。これは空間型の@ @ンデックス設定をサポ@ @トしていません)。
内存ストレジエンジンでのンデックス
内存
ストレ,ジエンジンはデフォルトで哈希
ンデックスを使用しますが,BTREE
ンデックスもサポ,トしています。