Maison > Questions et réponses > le corps du texte
C'est mon premier projet donc je suis désolé j'ai beaucoup de questions.
J'essaie de créer un index pour rechercher dans la table Cat ci-dessus.
Cependant, je ne sais pas comment l'appliquer car il existe plusieurs cas pour la clause Where.
SELECT * FROM CAT WHERE birth between '2000-01-01' and '2009-12-31'; SELECT * FROM CAT WHERE birth between '2000-01-01' and '2009-12-31' and NAME like '%blue%'; SELECT * FROM CAT WHERE NAME like '%blue%' AND AGE = 5;
Si possible, puis-je créer des index distincts pour l'âge, le nom et la naissance ? Sinon, dois-je créer (âge), (âge, nom), (âge, naissance), (âge, nom, naissance)... pour chaque cas ?
Même après avoir lu le livre, je n'en suis pas sûr, alors je vous laisse avec une question. J'espère que vous ne vous sentez pas mal à ce sujet.
J'utilise MySQL v8.0 innoDB.
Merci !
P粉2774647432024-03-31 15:26:09
WHERE birth between '2000-01-01' and '2009-12-31'
Peut-être queobtiendra de l'aide
INDEX(birth)
Mais attention : si birth
的类型为 DATETIME
, il vous manque la majeure partie du 31/12.
and NAME like '%blue%';
Aucune indexation n'aidera en raison du principal wildcard.
AND AGE = 5
La conception architecturale est terrible. Imaginez ce qui se passe lorsqu'un chat fête son anniversaire. Vous devez mettre à jour cette colonne. Utilisez plutôt birth
和 CURDATE()
pour effectuer du calcul de date.
Mais si vous conservez la colonne age
, alors ceci pourrait aider :
INDEX(age)
J'ai introduit la requête cat.birth
dans une autre question aujourd'hui ; Veuillez consulter mon cat.birth
查询;看见。请参阅我的 Index Cookbook 了解有关如何为给定的 SELECT
构建合适的索引。它显示了 WHERE ... AND ...
的哪些情况可以使用“复合”(多列)INDEX
Index Cookbook
donné. SELECT
Construisez l'index approprié. Il montre où WHERE ... AND ...
peut être utilisé à bon escient en utilisant un INDEX
"composite" (multi-colonnes). Aucun de vos exemples ne peut utiliser des index composites. 🎜