mysql では、index キーワードを使用してインデックスを作成できます (構文「CREATE INDEX インデックス名 ON テーブル名 (列名)」)。インデックス キーワードを使用してインデックスを表示できます (構文「SHOW INDEX」)。 FROM テーブル名"; インデックスを変更するために使用することもできます。構文は "DROP INDEX インデックス名 ON テーブル名" です。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql では、インデックスはインデックスを指しますが、これはデータ テーブル内の 1 つ以上の列で構成される特別なデータベース構造であり、データ テーブル内の特定の値をすばやくクエリするために使用できます。の。
index キーワードは、インデックスの作成、インデックスの表示、またはインデックスの変更に使用できます。
index キーワードはインデックスを作成します
インデックスの作成専用の CREATE INDEX ステートメントを使用して、既存のテーブルにインデックスを作成できますが、このステートメントではインデックスを作成できません。主キーです。
CREATE INDEX 索引名 ON 表名 (列名 [长度] [ASC|DESC])
<インデックス名>: インデックス名を指定します。テーブルには複数のインデックスを作成できますが、各インデックスにはテーブル内で一意の名前が付けられます。
<テーブル名>: インデックスを作成するテーブルの名前を指定します。
<カラム名>: インデックスを作成するカラム名を指定します。通常、クエリ ステートメントの JOIN 句と WHERE 句に頻繁に現れる列をインデックス列として使用することを検討できます。
<長さ>: オプション。列の前にある長さの文字を使用してインデックスを作成することを指定します。列の一部を使用してインデックスを作成すると、インデックス ファイルのサイズが削減され、インデックス列が占める領域を節約できます。場合によっては、列のプレフィックスのみにインデックスを付けることができます。インデックス列の長さの最大制限は 255 バイト (MyISAM および InnoDB テーブルの場合は 1000 バイト) です。インデックス列の長さがこの制限を超える場合は、列のプレフィックスを使用してのみインデックスを作成できます。さらに、BLOB または TEXT 型の列も接頭辞インデックスを使用する必要があります。
ASC|DESC: オプション。 ASC はインデックスが昇順でソートされることを指定し、DESC はインデックスが降順でソートされることを指定します。デフォルトは ASC です。
たとえば、カラム c4 に新しいインデックスを追加するには、次のステートメントを使用します。
CREATE INDEX idx_c4 ON t(c4);
デフォルトでは、インデックス タイプが指定されていない場合、MySQL はB ツリー インデックス。
index キーワード ビュー インデックス
SHOW INDEX FROM 表名 [FROM 数据库名]
構文は次のとおりです:
<テーブル名>: 必要性を指定します。表示するインデックスのデータテーブル名。
<データベース名>: インデックスを参照するデータテーブルが存在するデータベースを指定します(省略可能)。たとえば、SHOW INDEX FROM Student FROM test; ステートメントは、test データベース内の Student データ テーブルのインデックスを表示することを意味します。
mysql> SHOW INDEX FROM tb_stu_info2\G *************************** 1. row *************************** Table: tb_stu_info2 Non_unique: 0 Key_name: height Seq_in_index: 1 Column_name: height Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 1 row in set (0.03 sec)
説明 | |
---|---|
は、インデックスを作成するデータ テーブルの名前を表します。ここでは tb_stu_info2 データ テーブルです。 | |
インデックスが一意のインデックスであるかどうかを示します。一意のインデックスではない場合、この列の値は 1 になり、一意のインデックスである場合、この列の値は 0 になります。 | |
はインデックスの名前を表します。 | |
インデックス内の列の位置を示します。インデックスが単一列の場合、列の値は 1 です。インデックスが 1 つの列の場合、列の値は 1 です。結合インデックスの場合、列の値は 1 です。列の値は、インデックス定義での各列の出現順序です。 | |
は、インデックスを定義する列フィールドを表します。 | |
列がインデックスに格納される順序を示します。 MySQL では、値 "A" (昇順) が昇順で表示されます。NULL と表示された場合、分類されていないことを意味します。 | |
インデックス内の一意の値の数の推定値。カーディナリティは整数として保存される統計に対してカウントされるため、小さなテーブルの場合でも値が正確である必要はありません。カーディナリティが大きいほど、MySQL が結合を行うときにインデックスを使用する可能性が高くなります。 | |
は、列内のインデックス付き文字の数を表します。列に部分的にのみインデックスが作成されている場合、列の値はインデックスが作成されている文字数になります。列全体にインデックスが作成されている場合、列の値は NULL になります。 | |
キーワードがどのようにパックされるかを示します。圧縮されていない場合、値は NULL になります。 | |
は、インデックス列に NULL が含まれているかどうかを表示するために使用されます。列に NULL が含まれる場合、その列の値は YES になります。そうでない場合、この列の値は NO になります。 | |
インデックスで使用されるタイプとメソッド (BTREE、FULLTEXT、HASH、RTREE) を表示します。 | |
コメントを表示します。 |