Lors de l'utilisation d'index dans MySQL, veuillez noter : 1. Les valeurs NULL dans les colonnes ne seront pas incluses dans l'index ; 2. Lors de l'indexation des chaînes, vous devez spécifier une longueur de préfixe 3. Les requêtes MySQL utilisent uniquement ; Un index ; 4. N'effectuez pas d'opérations sur les colonnes ; 5. N'utilisez pas d'opérations NOT IN.
Remarques :
(Tutoriel recommandé : Tutoriel MySQL)
1. pas les colonnes qui contiendront des valeurs NULL
Tant que la colonne contient des valeurs NULL, elles ne seront pas incluses dans l'index. Tant qu'une colonne de l'index composite contient des valeurs NULL, alors cette colonne le sera. être invalide pour cet index composite. Par conséquent, lors de la conception de la base de données, nous ne devons pas laisser la valeur par défaut du champ être NULL.
2. Utilisez un index court
pour indexer la chaîne. Si possible, vous devez spécifier une longueur de préfixe. Par exemple, si vous avez une colonne CHAR(255), si la plupart des valeurs sont uniques dans les 10 ou 20 premiers caractères, n'indexez pas la colonne entière. Les index courts améliorent non seulement la vitesse des requêtes, mais permettent également d'économiser de l'espace disque et des opérations d'E/S.
3. Tri des colonnes d'index
La requête MySQL n'utilise qu'un seul index, donc si l'index a été utilisé dans la clause Where, les colonnes classées par n'utiliseront pas l'index. Par conséquent, n'utilisez pas d'opérations de tri lorsque le tri par défaut de la base de données peut répondre aux exigences ; essayez de ne pas inclure le tri de plusieurs colonnes. Si nécessaire, il est préférable de créer des index composites pour ces colonnes.
4. Opération d'instruction similaire
Généralement, l'utilisation de l'opération similaire n'est pas encouragée. Si elle doit être utilisée, comment l'utiliser est également un problème. Comme "%aaa%", n'utilisera pas l'index, mais comme "aaa%", il pourra utiliser l'index.
5. N'effectuez pas d'opérations sur les colonnes
comme suit :
select * from users where YEAR(adddate)<2007;
effectuera des opérations sur chaque ligne, ce qui entraînera un échec de l'index et une analyse complète de la table, nous peut le changer en :
comme suit :
select * from users where adddate<‘2007-01-01';
6. N'utilisez pas les opérations NOT IN et <>
La phrase suivante utilisera l'index :
SELECT * FROM mytable WHERE username like'admin%'
La phrase suivante ne sera pas utilisée :
SELECT * FROM mytable WHEREt Name like'%admin'
Recommandations associées : formation php
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!