ホームページ >データベース >mysql チュートリアル >MySQL インデックスを整理する
MySQL インデックス
MySQL インデックスの確立は、MySQL を効率的に運用するために非常に重要です。 MySQL の検索速度が大幅に向上します。
たとえば、適切に設計されインデックスを使用する MySQL がランボルギーニである場合、設計されていないインデックスを使用する MySQL は人間の三輪車です。
中国語辞書の目次ページ(インデックス)を例にとると、ピンイン、画数、部首などで分類された目次(インデックス)から、必要な単語をすぐに見つけることができます。
インデックスは、単一列インデックスと結合インデックスに分かれています。
単一列インデックス、つまり、インデックスには 1 つの列のみが含まれます。テーブルには複数の単一列インデックスを含めることができますが、これは結合インデックスではありません。
結合インデックス。つまり、インデックスに複数の列が含まれます。
インデックスを作成するときは、インデックスが SQL クエリ ステートメントに適用される条件 (通常は WHERE 句の条件として) であることを確認する必要があります。
実際、インデックスはテーブルでもあり、主キーとインデックス フィールドを保存し、エンティティ テーブルのレコードを指します。
上記はすべてインデックスを使用する利点について述べていますが、インデックスを過度に使用すると乱用が発生します。したがって、インデックスには欠点もあります。インデックスによりクエリ速度は大幅に向上しますが、テーブルの INSERT、UPDATE、DELETE などのテーブルの更新速度も低下します。テーブルを更新するとき、MySQL はデータを保存するだけでなく、インデックス ファイルも保存する必要があるためです。
インデックス ファイルを作成すると、ディスク領域が占有されます。リソースを占有することの 2 番目の欠点
関連する無料の学習に関する推奨事項:mysql ビデオ チュートリアル
通常のインデックス
最も基本的なインデックス タイプで、一意性などの制限はありません。
インデックスの作成
これは最も基本的なインデックスであり、制限はありません。
CREATE INDEX indexName ON table_name (column_name)
CHAR、VARCHAR型の場合は実際のフィールドの長さよりも短くてもかまいませんが、BLOB、TEXT型の場合は長さを指定する必要があります。
テーブル構造の変更(インデックスの追加)
ALTER table tableName ADD INDEX indexName(columnName)
テーブル作成時に直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
削除Index の構文
DROP INDEX [indexName] ON mytable;
一意のインデックス
一意のインデックスとは、2 つの行が同じインデックス値を持つことを許可しないインデックスです。
ほとんどのデータベースでは、既存のデータに重複するキー値がある場合、新しく作成した一意のインデックスをテーブルに保存することはできません。データベースは、テーブル内に重複するキー値を作成する新しいデータの追加を防ぐこともあります。たとえば、従業員テーブル内の従業員の姓 (lname) に一意のインデックスを作成した場合、2 人の従業員が同じ姓を持つことはできません。
インデックスの作成
CREATE UNIQUE INDEX indexName ON mytable(username(length))
テーブル構造の変更
ALTER table mytable ADD UNIQUE [indexName] (username(length))
テーブル作成時に直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
ALTER コマンドを使用してインデックスを追加および削除する
データ テーブルにインデックスを追加するには、次の 4 つの方法があります。
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list):
このステートメントは主キーを追加します。つまり、インデックス値は一意である必要があり、NULL にすることはできません。
ALTER TABLE tbl_name ADD UNIQUE Index_name (column_list): このステートメントによって作成されるインデックスの値は一意である必要があります (NULL を除く、NULL は複数回出現する可能性があります)。 。
ALTER TABLE tbl_name ADD INDEX Index_name (column_list): 通常のインデックスを追加します。インデックス値は複数回出現する可能性があります。
**ALTER TABLE tbl_name ADD FULLTEXT インデックス名 (column_list)
以上がMySQL インデックスを整理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。