Maison >base de données >tutoriel mysql >Comment indexer la partie date d'un champ DATETIME dans MySQL ?
Création d'un index sur la partie date d'un champ DATETIME dans MySQL
Pour créer un index sur la partie date d'un champ DATETIME, vous pouvez utiliser la syntaxe suivante :
CREATE INDEX idx_date ON table_name(DATE(date_field));
Par exemple, pour créer un index sur le champ TranDateTime dans la table transactionlist, vous exécuterez la requête suivante :
CREATE INDEX idx_date ON transactionlist(DATE(TranDateTime));
Une fois que vous Après avoir créé l'index, vous pouvez l'utiliser pour accélérer les requêtes qui filtrent sur la partie date du champ. Par exemple, la requête suivante utilisera l'index idx_date pour rechercher rapidement toutes les transactions survenues le 17/08/2008 :
SELECT * FROM transactionlist WHERE DATE(TranDateTime) = '2008-08-17';
Éviter la fonction DATE() dans les requêtes d'index
Il est important de noter que l'utilisation de la fonction DATE() dans une requête d'index peut contourner l'index et entraîner une analyse complète de la table. En effet, MySQL ne peut pas optimiser les requêtes qui utilisent des fonctions pour modifier les colonnes indexées.
Au lieu de cela, vous devez utiliser une requête par plage pour spécifier la plage de dates que vous souhaitez rechercher. Par exemple, la requête suivante utilisera l'index idx_date pour trouver rapidement toutes les transactions survenues entre le 17/08/2008 et le 17/08/2008 23:59:59.999999 :
SELECT * FROM transactionlist WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
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!