Cet article décrit principalement comment accélérer l'analyse des index MySQL et l'optimisation des sites Web dynamiques. Tutoriel iSH Chine en ligne
1. Qu'est-ce qu'un index ?
L'indexen ligne du didacticiel iSH Chine
est utilisé pour rechercher rapidement des enregistrements avec des valeurs spécifiques. Tous les index MySQL sont enregistrés sous forme d'arbres B. S'il n'y a pas d'index, lors de l'exécution d'une requête, MySQL doit analyser tous les enregistrements de la table entière en commençant par le premier enregistrement jusqu'à ce qu'il trouve un enregistrement répondant aux exigences. Plus le nombre d'enregistrements dans la table est élevé, plus le coût de cette opération est élevé. Si un index a été créé sur la colonne utilisée comme condition de recherche, MySQL peut rapidement obtenir l'emplacement de l'enregistrement cible sans analyser aucun enregistrement. Si la table contient 1 000 enregistrements, la recherche des enregistrements via l'index est au moins 100 fois plus rapide que l'analyse séquentielle des enregistrements. iSH Chinese Tutorial Online
Supposons que nous créions une table nommée people : iSH Chinese Tutorial Online
CREATE TABLE people ( peopleid SMALLINT NOT NULL, iSH Chinese Tutorial Online
name CHAR(50
) NOT NULL );
différentes valeurs de nom dans la table des personnes. Les colonnes de noms n'ont pas d'ordre explicite dans le fichier de données. Si nous créons un index sur la colonne de nom, MySQL triera la colonne de nom dans l'index. Pour chaque élément de l'index, MySQL enregistre en interne un "pointeur" vers l'emplacement réel de l'enregistrement dans le fichier de données. Ainsi, si l'on veut trouver le peopleid de l'enregistrement dont le nom est égal à "Mike" (la commande SQL est "SELECT peopleid FROM people WHERE name='Mike';"), MySQL est capable de trouver la valeur "Mike" dans l'index du nom, puis accédez directement à La ligne correspondante dans le fichier de données renvoie exactement l'ID de personne (999) de cette ligne. Au cours de ce processus, MySQL n'a besoin de traiter qu'une seule ligne pour renvoyer le résultat. S'il n'y a pas d'index dans la colonne "nom", MySQL analysera tous les enregistrements du fichier de données, soit 1 000 enregistrements ! Évidemment, plus le nombre d'enregistrements que MySQL doit traiter est petit, plus il peut accomplir la tâche rapidement. iSH Chinese Tutorial Online
2. Types d'index iSH Chinese Tutorial Online
MySQL propose une variété de types d'index parmi lesquels choisir : iSH Chinese Tutorial Online
index ordinaire : iSH Chinese Tutorial Online
Il s'agit du type d'index le plus basique et il n'a aucune restriction telle que l'unicité. . Les index ordinaires peuvent être créés des manières suivantes : Le didacticiel chinois iSH en ligne
crée un index, par exemple, CREATE INDEX <nom de l'index> ON tablename (liste de colonnes) ; le didacticiel chinois iSH en ligne
modifie la table, par exemple ALTER TABLE nom_table ADD ; INDEX [nom de l'index] ] (liste des colonnes); iSH Chinese Tutorial Online
Spécifiez l'index lors de la création d'une table, par exemple CREATE TABLE nom de la table ([...], INDEX [nom de l'index] (liste des colonnes));
Index uniquedu didacticiel chinois en ligne
: iSH Tutoriel chinois en ligne
Ce type d'index est fondamentalement le même que le précédent "index ordinaire", mais il y a une différence : toutes les valeurs de la colonne d'index ne peuvent apparaître qu'une seule fois, c'est-à-dire qu'elles doivent être unique. Des index uniques peuvent être créés des manières suivantes : Les didacticiels chinois iSH en ligne
créent des index, tels que CREATE UNIQUE INDEX <nom de l'index> ON tablename (liste de colonnes)
; nom] (liste des colonnes); iSH Chinese Tutorial Online
Spécifiez l'index lors de la création d'une table, par exemple, CREATE TABLE tablename ([...], UNIQUE [nom de l'index] (liste des colonnes));
clé primaire : iSH Chinese Tutorial Online
La clé primaire est un index unique, mais elle doit être spécifiée comme "PRIMARY KEY". Si vous avez déjà utilisé des colonnes de type AUTO_INCREMENT, vous connaissez peut-être déjà des concepts tels que les clés primaires. La clé primaire est généralement spécifiée lors de la création de la table, par exemple "CREATE TABLE nom_table ([...], PRIMARY KEY (liste de colonnes));". Cependant, nous pouvons également ajouter des clés primaires en modifiant la table, comme "ALTER TABLE tablename ADD PRIMARY KEY (list of columns);". Chaque table ne peut avoir qu'une seule clé primaire.
Index de texte intégral
en ligne du didacticiel de chinois iSH
: Tutoriel de chinois iSH en ligneMySQL prend en charge l'indexation de texte intégral et la recherche de texte intégral à partir de la version 3.23.23. Dans MySQL, le type d'index de texte intégral est FULLTEXT. Des index de texte intégral peuvent être créés sur des colonnes de type VARCHAR ou TEXT. Il peut être créé par la commande CREATE TABLE, ou par la commande ALTER TABLE ou CREATE INDEX. Pour les ensembles de données volumineux, la création d'un index de texte intégral via la commande ALTER TABLE (ou CREATE INDEX) est plus rapide que l'insertion d'enregistrements dans une table vide avec un index de texte intégral.