Maison >base de données >tutoriel mysql >Comment ajouter un index dans MySQL

Comment ajouter un index dans MySQL

青灯夜游
青灯夜游original
2019-05-08 10:52:1831403parcourir

Méthode MySQL pour ajouter un index : vous pouvez l'ajouter via l'instruction [create table], telle que [CONSTRAINT PRIMARY INDEX [807053e397f7ee6849c7324c778ecc6d] [624a8af8f0856a44a4409ac43c567197] 2888f106a147a09f253df1de5045c07b : 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 87031497877ef0fde159265152a1fea9 : Spécifiez le nom de la table pour créer un index.

Quantity 97af8c213456911f226c06ffbbe12800 : 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 0249338b4fda8f18157ad6a493230aec : 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 [索引类型] (<列名>,…)

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 (7fb667abe63b2f43b0394465a3db07c5,...) à la fin de l'instruction. .

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

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

3 Créer un index unique

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

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

FOREIGN KEY <索引名> <列名>

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)
    -> );

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)
    -> );

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 [<索引类型>] (<列名>,…)

2 Créez un index général

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

3 Créez un index unique

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

4. index de clé étrangère

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

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) ;

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)

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!

Déclaration:
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