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 !
Peut-être queobtiendra de l'aide
Mais attention : si
birth
的类型为DATETIME
, il vous manque la majeure partie du 31/12.Aucune indexation n'aidera en raison du principal wildcard.
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 :J'ai introduit la requête
pour plus d'informations sur la façon de créer uncat.birth
dans une autre question aujourd'hui ; Veuillez consulter moncat.birth
查询;看见。请参阅我的 Index Cookbook 了解有关如何为给定的SELECT
构建合适的索引。它显示了WHERE ... AND ...
的哪些情况可以使用“复合”(多列)INDEX
Index Cookbookdonné. SELECT
Construisez l'index approprié. Il montre oùWHERE ... AND ...
peut être utilisé à bon escient en utilisant unINDEX
"composite" (multi-colonnes). Aucun de vos exemples ne peut utiliser des index composites. 🎜