MySQLのインデックス
MySQLのMySQLは、効率的な動作のために索引を作成するインデックスが大幅のMySQLの検索速度を向上させることができ、非常に重要です。
例えば、合理的な設計場合とMySQLはランボルギーニであるインデックスを使用し、その後、MySQLは三輪車であるインデックスのない設計および使用はありません。
インデックスは、別のインデックスと併用指数を指しています。 単一の列のインデックスが含まれている別のインデックスは、テーブルには、複数の別々のインデックスを持つことができますが、これは複合インデックスではありません。 複合インデックス、列を複数備え、すなわちケーブル。
あなたは、インデックスを作成するときは、インデックスは(一般的にWHERE句の条件として)SQLクエリの条件で使用されていることを確認する必要があります。
実際には、インデックスはまた、エンティティテーブルを記録するために主キーとインデックスフィールド、との点を保持するテーブルです。
上記は、インデックスを使用する利点について話しているが、インデックスの過度の使用は乱用になります。 したがって、インデックスはまた、その欠点があります。それは、このようなテーブルのINSERT、UPDATEとして、テーブルを更新する速度を低減し、およびDELETEする一方、インデックスが大きく、クエリの速度を増加しました。 更新テーブルなので、MySQLはデータを保存するだけでなく、インデックスファイルについて保存することだけではありません。
インデックス作成は、インデックスファイルのディスク領域を占めます。
総合指数
インデックスを作成します。
これは、基本的な指標である、それは任意の制限はありません。 それは、次の方法を作成しました:
CREATE INDEX indexName ON mytable(username(length));
それはCHAR、VARCHAR型である場合、長さはフィールドの実際の長さよりも小さくすることができ、BLOBとTEXTタイプ場合は、長さを指定する必要があります。
テーブル構造を変更します
ALTER mytable ADD INDEX [indexName] ON (username(length))
表の作成時に直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
インデックスの構文を削除します。
DROP INDEX [indexName] ON mytable;
固有索引
索引列の値は一意であるが、自由に値を許可する必要があります。それは異なっている、以前の一般的な指標に類似しています。 それがインデックスの組み合わせである場合は、列の値は一意である必要があります。 それは、次の方法を作成しました:
インデックスを作成します。
CREATE UNIQUE INDEX indexName ON mytable(username(length))
テーブル構造を変更します
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
表の作成時に直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
インデックスを追加および削除するには、ALTERコマンドを使用します
インデックスデータテーブルを追加するための4つの方法があります。
- PRIMARY KEY(column_listのをADD tbl_nameをALTER TABLEを ):この文は、インデックス値が一意である必要があり、NULLにすることはできないことを意味し、主キーを追加します。
- テーブルtbl_nameは、UNIQUE INDEX_NAME(column_listのをADD ALTER ):この文は、インデックス値が一意である必要があります作成します(外NULL以外、NULLが複数回表示されることがあります)。
- INDEX index_nameは(column_listのをADD tbl_nameをALTER TABLEを ):通常のインデックスを追加、インデックスの値が複数回発生する可能性があります。
- テーブルtbl_nameはFULLTEXT index_nameは(column_listのをADD ALTER ):この文では、フルテキストインデックスのために、インデックスがFULLTEXTであることを指定します。
次の例では、テーブルにインデックスを追加します。
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
また、ALTERコマンドでインデックスを削除するには、DROP句を使用することができます。 インデックスを削除するには、次の例を試してみてください。
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
追加し、主キーを削除するには、ALTERコマンドを使用します
あなたは、主キーインデックスを追加するとき、あなたはデフォルトの主キーは(NOT NULL)が空でないことを確認する必要があり、主キー列にのみ作用します。 例としては、次のとおりです:
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL; mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
また、主キーを削除するには、ALTERコマンドを使用することができます。
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
ただ、指定された時間を削除PRIMARY KEYを指定していますが、インデックスを削除するときは、インデックスの名前を知っている必要があります。
表示インデックス情報
あなたは、テーブルのインデックス情報を一覧表示するには、SHOW INDEXコマンドを使用することができます。 \ Gを追加することにより、出力をフォーマットします。
次の例を試してみてください。
mysql> SHOW INDEX FROM table_name\G ........