Maison >base de données >tutoriel mysql >Qu'est-ce qu'un index MySQL ? Une brève discussion sur l'index mysql
Le contenu de cet article est : Qu'est-ce que l'index MySQL ? Parlons brièvement de l'index mysql, afin que tout le monde puisse avoir une compréhension simple de l'index mysql. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
1 : Qu'est-ce qu'un index
L'index lui-même est une unité de stockage indépendante, dans laquelle un certain champ de la table de données est enregistré et l'espace physique correspondant au terrain. Il existe un support d'algorithme à l'intérieur de l'index, ce qui peut rendre la vitesse de requête très rapide. [Tutoriels vidéo associés recommandés : Tutoriel MySQL]
Avec l'index, nous pouvons interroger des données en fonction de l'index comme condition, et la vitesse est très rapide
1. L'index lui-même prend en charge "algorithme ", qui peut localiser rapidement le mot-clé (champ) que nous voulons trouver
2. Index champ a une correspondance directe avec adresse physique, nous aidant à localiser rapidement les informations que nous voulons trouver
Tous les champs d'une table de données peuvent être indexés
Deux, type d'index
1, quatre types :
(1) clé primaire clé primaire
doit définir auto_increment pour l'index de clé primaire, index La valeur de la colonne ne peut pas être nulle et doit être unique
(2) index unique
La valeur de la colonne d'index ne peut pas être répétée, mais les valeurs nulles sont autorisées
(3) Index d'index ordinaire
La valeur de la colonne d'index peut être répétée.
(4) Index de texte intégral index de texte intégral
La table de données Myisam peut définir cet index
2, l'index composite
l'index est composé de deux ou plus Composé de colonnes, on l’appelle index composite ou index conjoint.
3. Créer un index
1. >1), lors de la création d'une table membre, et créez divers index.
2), ajouter un index à la table de données existantecreate table member( id int not null auto_increment comment '主键', name char(10) not null default '' comment '姓名', height tinyint not null default 0 comment '身高', old tinyint not null default 0 comment '年龄', school varchar(32) not null default '' comment '学校', intro text comment '简介', primary key (id), // 主键索引 unique index nm (name), //唯一索引,索引也可以设置名称,不设置名字的话,默认字段名 index (height), //普通索引 fulltext index (intro) //全文索引 )engine = myisam charset = utf8;3), créer un index composite (l'index n'a pas de nom, par défaut le premier champ est pris comme nom)
//注:一般设置主键后,会把主键字段设置为自增。(alter table member modify id int not null auto_increment comment '主键';) alter table member add primary key(id); alter table member add unique key nm (name); alter table member add index(height); alter table member add fulltext index(intro);2, supprimer l'index
alter table member add unique key nm (name,height);
Remarque :
alter table 表名 drop primary key;//删除主键索引
Si l'attribut auto_increment existe dans ce champ de clé primaire, il doit d'abord être supprimé. (modifier le nom de la table modifier la clé primaire int non nul commentaire 'clé primaire')
Supprimer l'attribut auto_increment du champ de la table de données ; >Exemple :
4. expliquer Vérifier si l'index utilise
alter table 表名 drop index 索引名称; //删除其它索引(唯一,普通,全文)Opérations spécifiques :
alter table member drop index nm;expliquer
requête instruction sql Voici la situation sans définir l'index de clé primaire : (faible vitesse et efficacité d'exécution)
Après avoir ajouté la clé primaire :
5. Scénarios adaptés à l'indexation1. adapté à l'indexation).
2. Requête de tri (ordre par champ) 6. Principes d'indexation
1. Principe2, principe de gauche
requête floue, like & _
% : associer plusieurs contenus flousselect * from emp where empno = 1325467;//empno条件独立,使用索引 select * from emp where empno+2 = 1325467;//empno条件不独立,只有独立的条件字段才可以使用索引
_ : Associer un contenu flou Exemple :
3, index composite index (a,b)
4, ou principeselect * form 表名 where a like "beijing%";//使用索引 select * from 表名 where a like "beijing_";//使用索引 select * from 表名 where a like "%beijing%”;//不使用索引 select * from 表名 where a like "%beijing";//不使用索引
Les conditions d'association autour du OU doivent avoir des index avant que les index puissent être utilisés.
Exemple : (index (a), index (b)) L'apprentissage aide.select * from 表名 where a like "beijing%";//使用索引 select * from 表名 where b like "beijing%;//不使用索引 select * form 表名 where a like "beijing%" and b like "beijng%";//使用索引
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!