Mysql のインデックス追加方法: [CONSTRAINT PRIMARY KEY | INDEX [<インデックス名>] [<インデックス タイプ>]
mysql では、テーブルの作成中にインデックスを作成 (CREATE TABLE) できますが、後で作成することもできます。テーブルのインデックスを作成するには、CREATE INDEX ステートメントまたは ALTER TABLE ステートメントを使用します。
(ビデオ チュートリアルの推奨: mysql ビデオ チュートリアル)
1. CREATE INDEX ステートメントを使用します
CREATE INDEX ステートメントは既存のテーブルにインデックスを作成しますが、このステートメントでは主キーを作成できません。
CREATE INDEX [<索引名>] ON <表名> (<列名> [<长度>] [ ASC | DESC])
構文は次のとおりです。
●<インデックス名>: インデックス名を指定します。テーブルには複数のインデックスを作成できますが、各インデックスにはテーブル内で一意の名前が付けられます。
##● <テーブル名>: インデックスを作成するテーブルの名前を指定します。##● <カラム名>: インデックスを作成するカラム名を指定します。通常、クエリ ステートメントの JOIN 句と WHERE 句に頻繁に現れる列をインデックス列として使用することを検討できます。
##●<長さ>: オプション。列の前にある長さの文字を使用してインデックスを作成することを指定します。列の一部を使用してインデックスを作成すると、インデックス ファイルのサイズが削減され、インデックス列が占める領域を節約できます。場合によっては、列のプレフィックスのみにインデックスを付けることができます。インデックス列の長さの最大制限は 255 バイト (MyISAM および InnoDB テーブルの場合は 1000 バイト) です。インデックス列の長さがこの制限を超える場合は、列のプレフィックスを使用してのみインデックスを作成できます。さらに、BLOB または TEXT 型の列も接頭辞インデックスを使用する必要があります。 # ASC|DESC: オプション。 ASC はインデックスが昇順でソートされることを指定し、DESC はインデックスが降順でソートされることを指定します。デフォルトは ASC です。 2. CREATE TABLE ステートメントを使用しますテーブルの作成 (CREATE TABLE) と同時にインデックスを作成できます。形式:
1. 主キー インデックスの作成CONSTRAINT PRIMARY KEY [索引类型] (<列名>,…)
KEY | INDEX [<索引名>] [<索引类型>] (<列名>,…)
UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)
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) -> );
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) -> );
ALTER TABLE ステートメントを使用してテーブルを変更する際に、以下を追加することもできます。既存のテーブルを変更し、インデックスを追加します。具体的な方法は、次の構文コンポーネントの 1 つ以上を ALTER TABLE ステートメントに追加することです。
ADD PRIMARY KEY [<索引类型>] (<列名>,…)
ADD INDEX [<索引名>] [<索引类型>] (<列名>,…)
ADD UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)
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 サイトの他の関連記事を参照してください。