Maison > base de données > tutoriel mysql > le corps du texte

Comment ajouter un index dans MySQL

青灯夜游
Libérer: 2020-09-16 14:17:38
original
31368 Les gens l'ont consulté

Méthode MySQL pour ajouter un index : vous pouvez l'ajouter via l'instruction [create table], telle que [CONSTRAINT PRIMARY INDEX [] []

Comment ajouter un index dans MySQL

Dans mysql, vous pouvez créer un index lors de la création de la table (CREATE TABLE vous pouvez également le créer après) ; lors de la création de l'index de table, utilisez l'instruction CREATE INDEX ou l'instruction ALTER TABLE.

(Tutoriel vidéo recommandé : Tutoriel vidéo mysql )

1 Utilisez l'instruction CREATE INDEX

peut être utilisée spécifiquement. for L'instruction CREATE INDEX crée un index sur une table existante, mais cette instruction ne peut pas créer de clé primaire.

CREATE INDEX [<索引名>] ON <表名> (<列名> [<长度>] [ ASC | DESC])
Copier après la connexion

La description de la syntaxe est la suivante :

  : Spécifiez le nom de l'index. Plusieurs index peuvent être créés sur une table, mais chaque index possède un nom unique dans la table.

Quantity  : Spécifiez le nom de la table pour créer un index.

Quantity  : Spécifiez le nom de la colonne pour créer un index. Vous pouvez généralement envisager d'utiliser les colonnes qui apparaissent fréquemment dans la clause JOIN et la clause WHERE de l'instruction de requête comme colonnes d'index.

Quantity  : Facultatif. Spécifie que les caractères de longueur précédant la colonne sont utilisés pour créer l'index. La création d'un index utilisant une partie d'une colonne peut aider à réduire la taille du fichier d'index et à économiser l'espace occupé par les colonnes d'index. Dans certains cas, seul le préfixe d'une colonne peut être indexé. La longueur d'une colonne d'index a une limite maximale de 255 octets (1 000 octets pour les tables MyISAM et InnoDB). Si la longueur d'une colonne d'index dépasse cette limite, elle ne peut être indexée qu'en utilisant le préfixe de la colonne. De plus, les colonnes de type BLOB ou TEXT doivent également utiliser des index de préfixe.

Quantity ASC|DESC : Facultatif. ASC spécifie que l'index est trié par ordre croissant, DESC spécifie que l'index est trié par ordre décroissant et la valeur par défaut est ASC.

2. Utilisez l'instruction CREATE TABLE

L'index peut être créé en même temps que la création de la table (CREATE TABLE). Le format de syntaxe est :

1. Créez un index de clé primaire

CONSTRAINT PRIMARY KEY [索引类型] (<列名>,…)
Copier après la connexion

Lorsque vous utilisez l'instruction CREATE TABLE pour définir les options de colonne, vous pouvez créer une clé primaire en ajoutant PRIMARY KEY directement après la définition d'une colonne. . Lorsque la clé primaire est un index multi-colonnes composé de plusieurs colonnes, cette méthode ne peut pas être utilisée. Elle ne peut être implémentée qu'en ajoutant une clause PRIMARY KRY (,...) à la fin de l'instruction. .

2. Créer un index général

 KEY | INDEX [<索引名>] [<索引类型>] (<列名>,…)
Copier après la connexion

3 Créer un index unique

UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)
Copier après la connexion

4 Créer un index de clé étrangère

FOREIGN KEY <索引名> <列名>
Copier après la connexion

Exemple. 1 : Créez une table tb_stu_info, et créez un index général sur le champ hauteur de la table.

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)
    -> );
Copier après la connexion

Exemple 2 : Créez une table tb_stu_info2 et utilisez le mot-clé UNIQUE pour créer un index unique sur le champ id de la table.

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)
    -> );
Copier après la connexion

3. Utilisez l'instruction ALTER TABLE

Tout en utilisant l'instruction ALTER TABLE pour modifier la table, vous pouvez ajouter à la table existante Ajouter un index. La méthode spécifique consiste à ajouter un ou plusieurs des composants de syntaxe suivants à l'instruction ALTER TABLE.

1. Créez un index de clé primaire

ADD PRIMARY KEY [<索引类型>] (<列名>,…)
Copier après la connexion

2 Créez un index général

ADD INDEX [<索引名>] [<索引类型>] (<列名>,…)
Copier après la connexion

3 Créez un index unique

ADD UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)
Copier après la connexion

4. index de clé étrangère

ADD FOREIGN KEY [<索引名>] (<列名>,…)
Copier après la connexion

Exemple 1 : Après avoir créé une table tb_stu_info3, utilisez le mot-clé UNIQUE pour créer un index unique sur le champ id de la table.

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) ;
Copier après la connexion

4. Affichez les informations d'index

pour utiliser la commande SHOW INDEX pour répertorier les informations d'index pertinentes dans le tableau. Les informations de sortie peuvent être formatées en ajoutant G.

Exemple :

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)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal