MySQL データベースのインデックス タイプ/作成/使用の組み合わせ MySQL での ALTER ステートメントの使用法

MySQLインデックス タイプ/作成/使用コンボの変更MySQLコマンド ステートメントの使用法

MySQL インデックス

MySQL インデックスの確立は、MySQL の効率的な運用にとって非常に重要であり、インデックスは MySQL の検索速度を大幅に向上させることができます。

たとえば、合理的な設計とインデックスの使用を備えた MySQL がランボルギーニである場合、インデックスとインデックスのない MySQL は人間の三輪車です。

インデックスは、単一列インデックスと複合インデックスに分けられます。単一列インデックス。つまり、インデックスには XNUMX つの列のみが含まれます。テーブルには複数の単一列インデックスを含めることができますが、これは複合インデックスではありません。複合インデックス、つまり、XNUMX つのインデックスに複数の列が含まれます。

インデックスを作成するときは、インデックスがSQLクエリに適用される条件であることを確認する必要があります(通常はWHERE句の条件として)。

実際、インデックスもテーブルであり、テーブルは主キーとインデックス フィールドを保存し、エンティティ テーブルのレコードを指します。

上記はすべてインデックスを使用する利点に関するものですが、インデックスを過度に使用すると悪用につながります。したがって、インデックスにも欠点があります。インデックスはクエリの速度を大幅に向上させますが、テーブルの INSERT、UPDATE、DELETE などのテーブルの更新速度を低下させます。テーブルを更新するとき、MySQL はデータを保存するだけでなく、インデックス ファイルも保存するためです。

ディスク容量を消費するインデックス ファイルのインデックス作成。


通常のインデックス

インデックスを作成

これは最も基本的なインデックスで、制限はありません。次の方法で作成できます。

CREATE INDEX indexName ON mytable(username(length)); 

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))  
 
);  

インデックスを削除する構文

DROP INDEX [indexName] ON mytable; 

一意のインデックス

以前の通常のインデックスに似ていますが、違いは、インデックス列の値は一意である必要がありますが、null 値は許可されていることです。複合インデックスの場合、列の値の組み合わせは一意でなければなりません。次の方法で作成できます。

インデックスを作成

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 コマンドを使用してインデックスを追加および削除する

データ テーブルにインデックスを追加するには、次の XNUMX つの方法があります。

  • 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 インデックス名 (column_list): 通常のインデックスを追加します。インデックス値は複数回表示できます。
  • ALTER TABLE tbl_name ADD FULLTEXT インデックス名 (column_list):このステートメントは、フルテキスト インデックス作成のためにインデックスを FULLTEXT として指定します。

次の例では、テーブルにインデックスを追加します。

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

ALTER コマンドで DROP 句を使用して、インデックスを削除することもできます。次のインスタンスを試して、インデックスを削除してください。

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

ALTER コマンドを使用して主キーを追加および削除する

The primary key can only act on one column. 主キー インデックスを追加するときは、主キーが既定で NULL でない (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
........

Hope Chen Weiliang ブログ ( https://www.chenweiliang.com/ ) 「MySQL データベース インデックス タイプ/作成/MySQL での組み合わせ ALTER ステートメントの使用法」を共有しました。

この記事のリンクを共有することを歓迎します。https://www.chenweiliang.com/cwl-496.html

Chen WeiliangのブログのTelegramチャンネルへようこそ。最新のアップデートを入手できます!

🔔 貴重な「ChatGPT コンテンツ マーケティング AI ツール使用ガイド」をチャンネル トップ ディレクトリでいち早く入手してください! 🌟
📚 このガイドには非常に価値のある内容が含まれています。🌟これはめったにない機会です、お見逃しなく! ⏰⌛💨
気に入ったらシェア&いいね!
あなたの共有といいねは、私たちの継続的な動機です!

 

发表评论

あなたのメールアドレスが公開されることはありません。 必須アイテム * 标注

トップにスクロールします