mysqlのインデックスキーワードの使用法は何ですか

青灯夜游
リリース: 2022-03-01 15:40:58
オリジナル
4771 人が閲覧しました

mysql では、index キーワードを使用してインデックスを作成できます (構文「CREATE INDEX インデックス名 ON テーブル名 (列名)」)。インデックス キーワードを使用してインデックスを表示できます (構文「SHOW INDEX」)。 FROM テーブル名"; インデックスを変更するために使用することもできます。構文は "DROP INDEX インデックス名 ON テーブル名" です。

mysqlのインデックスキーワードの使用法は何ですか

このチュートリアルの動作環境: 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)
ログイン後にコピー

主なパラメータは次のように説明されます:

#パラメータTableNon_uniqueKey_nameSeq_in_indexColumn_nameCollat​​ionカーディナリティSub_partPackedNullIndex_typeコメント

index关键字修改索引

DROP INDEX <索引名> ON <表名>
ログイン後にコピー

语法说明如下:

  • <索引名>:要删除的索引名。

  • <表名>:指定该索引所在的表名。

说明:

在 MySQL 中修改索引可以通过删除原索引,再根据需要创建一个同名的索引,从而实现修改索引的操作。

【相关推荐:mysql视频教程

以上がmysqlのインデックスキーワードの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
説明
は、インデックスを作成するデータ テーブルの名前を表します。ここでは tb_stu_info2 データ テーブルです。
インデックスが一意のインデックスであるかどうかを示します。一意のインデックスではない場合、この列の値は 1 になり、一意のインデックスである場合、この列の値は 0 になります。
はインデックスの名前を表します。
インデックス内の列の位置を示します。インデックスが単一列の場合、列の値は 1 です。インデックスが 1 つの列の場合、列の値は 1 です。結合インデックスの場合、列の値は 1 です。列の値は、インデックス定義での各列の出現順序です。
は、インデックスを定義する列フィールドを表します。
列がインデックスに格納される順序を示します。 MySQL では、値 "A" (昇順) が昇順で表示されます。NULL と表示された場合、分類されていないことを意味します。
インデックス内の一意の値の数の推定値。カーディナリティは整数として保存される統計に対してカウントされるため、小さなテーブルの場合でも値が正確である必要はありません。カーディナリティが大きいほど、MySQL が結合を行うときにインデックスを使用する可能性が高くなります。
は、列内のインデックス付き文字の数を表します。列に部分的にのみインデックスが作成されている場合、列の値はインデックスが作成されている文字数になります。列全体にインデックスが作成されている場合、列の値は NULL になります。
キーワードがどのようにパックされるかを示します。圧縮されていない場合、値は NULL になります。
は、インデックス列に NULL が含まれているかどうかを表示するために使用されます。列に NULL が含まれる場合、その列の値は YES になります。そうでない場合、この列の値は NO になります。
インデックスで使用されるタイプとメソッド (BTREE、FULLTEXT、HASH、RTREE) を表示します。
コメントを表示します。