タスク5:理解とインデックスの使用
指数
インデックス5.1の概念
シーケンサテーブルのような新華辞書データベースのインデックスは、その役割はしている、データベーステーブルの構造は、1つ以上の列がソートされている値であるテーブル内の検索データをスピードアップ。
なお、表の作成、インデックスを作成します。
表のCREATE TABLE名
(
フィールド名データ型[整合性制約]、
フィールド名データ型[整合性制約]、
......
フィールド名データ型
[UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY
[別名](フィールド1 [(長さ)])[ASC | DESC])
);
注:UNIQUE:オプションのパラメータは、固有の制約を表します
FULLTEXT:制約の全文を示すオプションのパラメータ
SPATIAL:オプションのパラメータは、空間的な制約を表し、
INDEXとKEY:インデックスフィールドには、Aとの間で選択すること、を示すために使用されます
インデックスの作成を表し、オプションのパラメータの名前を指定します。Alias
フィールド名1:インデックスに対応するフィールドの名前を指定します。
長さ:オプションのパラメータは、インデックスの長さを表し、
ASCとDESC:オプションのパラメータ、ASCは上昇を表しは、降順はDESCを表します
[]内の構文にあるオプションのパラメータであります
5.2インデックスの作成
次のように、インデックスを作成するための3つの方法があります。
インデックス作成時のテーブルの作成5.2.1:
(1)一般的な指標
以下のような:idフィールドインデックステーブルt1、SQL文は次のように:
TABLE t1は、CREATE
(
ID INT、
名前VARCHAR(20)、
スコアFLOAT、
INDEX(ID)
);
(2)一意のインデックス
など、次のようにテーブルt2という名前のテーブルを作成し、インデックスは、ユニークなテーブルのidフィールドで指定されたインデックス、および昇順で、SQL文をUNIQUE_ID:
テーブルt2をCREATE
(
ID INT NOT NULL、
名前VARCHAR(20)NOT NULL、
スコアFLOAT、
UNIQUE INDEX UNIQUE_ID(識別ASC)
);
(3)フルテキストインデックス
このようなとして、次のようにテーブルという名前のテーブルT3を作成し、テーブル名]フィールドにfulltext_nameと呼ばれるフルテキストインデックスのインデックスを作成、SQL文は次のとおりです。
テーブルT3をCREATE
(
ID INT NOT NULL、
名前VARCHAR(20)NOT NULL、
スコアFLOAT、
FULLTEXT INDEXのfulltext_name(名)
);
(4)個別のインデックス
以下のような:テーブルT4という名前のテーブルを作成し、別のインデックスの確立は、テーブル名フィールドにsingle_nameインデックスと呼ばれる次のように、SQL文は次のとおりです。
テーブルT4のCREATE
(
ID INT NOT NULL、
名前VARCHAR(20)NOT NULL、
スコアFLOAT、
INDEXのsingle_name(名(20))
);
(5)複数列インデックス
など、次のように、テーブルという名前のテーブルT5、テーブルのidとnameフィールド、SQL文で複数のインデックスと呼ばれるマルチカラムインデックスの確立を作成します。
テーブルT4のCREATE
(
ID INT NOT NULL、
名前VARCHAR(20)NOT NULL、
スコアFLOAT、
INDEXマルチ(ID、名前(20))
);
(6)*空間インデックス
以下のような:宇宙のジオメトリタイプでフィールドにインデックスのためのスペースを作成するために、テーブルT6をという名前のテーブルを作成し、以下のように、SQL文は次のとおりです。
テーブルT6をCREATE
(
ID INT、
スペースGEOMETRY NOT NULL、
空間インデックスSP(スペース)
)ENGINE = MyISAMテーブル。
注:あなたは、フィールドの値はNULLにすることはできません空間インデックスを作成し、テーブルのストレージエンジンはMyISAMテーブルです。
既に存在するテーブルにインデックスを作成するには、CREATE INDEXステートメントを使用して5.2.2
すでにインデックスに存在するテーブルを作成し、CREATE INDEXステートメントを使用することができるために、インデックスの特定の構文を作成するためにCREATE INDEX文を次のようになります。
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX ONテーブルインデックス名(フィールド名[(長さ)] [ASC | DESC])。
以下のような:idフィールドT1にテーブル名を確立し、以下のように一意のインデックスUNIQUE_ID、SQL文、次のとおりです。
UNIQUE INDEX UNIQUE_IDオンTI(ID)を作成します。
5.2.3使用してALTER TABLEのテーブルにインデックスを作成するためのステートメントを既に存在しています
ALTER TABLE文を使用し、それがすでに存在するインデックステーブルを作成することは、すでにここに示したテーブルの構文上のインデックスを作成し、次のとおりです。
ALTER TABLEテーブル名ADD [UNIQUE | FULLTEXT | SPATIAL] INDEXインデックス名(フィールド[(長さ)] [ASC | DESC])。
以下のような:idフィールドT1にテーブル名を確立し、以下のように一意のインデックスUNIQUE_ID、SQL文、次のとおりです。
ALTERテーブルT1のADD UNIQUE UNIQUE_ID(ID)。
注:使用SHOWは、TABLE、CREATE次のようにテーブルを参照してください構造の文を、SQLコードは次のとおりです。
SHOWは、CREATE TABLE表名。
注:あなたが使用することができ、インデックスが使用されているかどうかを確認するには、EXPLAIN次のように文のビューを、SQLコードは次のとおりです。
テーブルSELECT * FROM [フィールド名= 1]をEXPLAIN。
5.3インデックスの削除
インデックスを削除し、次のように、二つの方法で:
1. ALTER TABLEインデックスを削除
次のように基本的な構文のインデックスを削除するために使用ALTER TABLEは次のとおりです。
DROP INDEX、ALTER TABLEテーブル名、フィールド名;
2. DROP INDEXインデックスを削除します
次のように基本的な構文のインデックスを削除するために使用はDROP INDEXは、
テーブル名ON DROP INDEXインデックス名。