ホームページ  >  記事  >  データベース  >  mysqlにインデックスを追加する方法

mysqlにインデックスを追加する方法

青灯夜游
青灯夜游オリジナル
2019-05-08 10:52:1831352ブラウズ

Mysql のインデックス追加方法: [CONSTRAINT PRIMARY KEY | INDEX [a52c436beb5671e86beb2a060e81641a] [4caa9b202578bfab552a5ce801fb8cd7] 53d8d8cf84ac76cb2390e79249df6ba2: インデックスを作成するテーブルの名前を指定します。

##● 8a1bac78e3fc78574522f4bb122559db: インデックスを作成するカラム名を指定します。通常、クエリ ステートメントの JOIN 句と WHERE 句に頻繁に現れる列をインデックス列として使用することを検討できます。

##●960dd63397ce1f3d7bd50f67b5a1a0a5: オプション。列の前にある長さの文字を使用してインデックスを作成することを指定します。列の一部を使用してインデックスを作成すると、インデックス ファイルのサイズが削減され、インデックス列が占める領域を節約できます。場合によっては、列のプレフィックスのみにインデックスを付けることができます。インデックス列の長さの最大制限は 255 バイト (MyISAM および InnoDB テーブルの場合は 1000 バイト) です。インデックス列の長さがこの制限を超える場合は、列のプレフィックスを使用してのみインデックスを作成できます。さらに、BLOB または TEXT 型の列も接頭辞インデックスを使用する必要があります。

# ASC|DESC: オプション。 ASC はインデックスが昇順でソートされることを指定し、DESC はインデックスが降順でソートされることを指定します。デフォルトは ASC です。

2. CREATE TABLE ステートメントを使用します

テーブルの作成 (CREATE TABLE) と同時にインデックスを作成できます。形式:

1. 主キー インデックスの作成

CONSTRAINT PRIMARY KEY [索引类型] (<列名>,…)

CREATE TABLE ステートメントを使用して列オプションを定義する場合、列定義の直後に PRIMARY KEY を追加することで主キーを作成できます。主キーが複数の列から構成される複数列インデックスの場合、この方法は使用できず、ステートメントの最後に PRIMARY KRY (,...) 句を追加することによってのみ実装できます。 。

2. 一般インデックスの作成

 KEY | INDEX [<索引名>] [<索引类型>] (<列名>,…)

3. 一意のインデックスの作成

UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)

4. 外部キー インデックスの作成

FOREIGN KEY <索引名> <列名>

例1:

テーブル tb_stu_info を作成し、テーブルの高さフィールドに一般インデックスを作成します。

mysql> CREATE TABLE tb_stu_info
    -> (
    -> id INT NOT NULL,
    -> name CHAR(45) DEFAULT NULL,
    -> dept_id INT DEFAULT NULL,
    -> age INT DEFAULT NULL,
    -> height INT DEFAULT NULL,
    -> INDEX(height)
    -> );
例 2: テーブル tb_stu_info2 を作成し、UNIQUE キーワードを使用してテーブルの id フィールドに一意のインデックスを作成します。
mysql> CREATE TABLE tb_stu_info2
    -> (
    -> id INT NOT NULL,
    -> name CHAR(45) DEFAULT NULL,
    -> dept_id INT DEFAULT NULL,
    -> age INT DEFAULT NULL,
    -> height INT DEFAULT NULL,
    -> UNIQUE INDEX(id)
    -> );

3. ALTER TABLE ステートメントを使用する

ALTER TABLE ステートメントを使用してテーブルを変更する際に、以下を追加することもできます。既存のテーブルを変更し、インデックスを追加します。具体的な方法は、次の構文コンポーネントの 1 つ以上を ALTER TABLE ステートメントに追加することです。

1. 主キー インデックスを作成します

ADD PRIMARY KEY [<索引类型>] (<列名>,…)

2. 一般インデックスを作成します

ADD INDEX [<索引名>] [<索引类型>] (<列名>,…)

3. 一意のインデックスを作成します

ADD UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)

4.外部キー インデックス

ADD FOREIGN KEY [<索引名>] (<列名>,…)

例 1:

テーブル tb_stu_info3 を作成した後、UNIQUE キーワードを使用してテーブルの id フィールドに一意のインデックスを作成します。

mysql> CREATE TABLE tb_stu_info3
    -> (
    -> id INT NOT NULL,
    -> name CHAR(45) DEFAULT NULL,
    -> dept_id INT DEFAULT NULL,
    -> age INT DEFAULT NULL,
    -> height INT DEFAULT NULL,
    -> );
Query OK,0 rows affected (0.40 sec)
mysql>ALTER TABLE tb_stu_info3 ADD UNIQUE (id) ;

4. インデックス情報の表示

SHOW INDEX コマンドを使用して、テーブル内の関連するインデックス情報を一覧表示します。 \G を追加することで出力情報をフォーマットできます。

例:

mysql> SHOW CREATE TABLE tb_stu_info\G
*************************** 1. row ***************************
       Table: tb_stu_info
Create Table: CREATE TABLE `tb_stu_info` (
  `id` int(11) NOT NULL,
  `name` char(45) DEFAULT NULL,
  `dept_id` int(11) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `height` int(11) DEFAULT NULL,
  KEY `height` (`height`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.01 sec)

以上がmysqlにインデックスを追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。