Maison > base de données > tutoriel mysql > Comment puis-je optimiser les requêtes MySQL sur la partie date d'un champ DATETIME ?

Comment puis-je optimiser les requêtes MySQL sur la partie date d'un champ DATETIME ?

Mary-Kate Olsen
Libérer: 2024-12-15 03:54:12
original
241 Les gens l'ont consulté

How Can I Optimize MySQL Queries on the Date Part of a DATETIME Field?

Création d'un index pour la partie date du champ DATETIME dans MySQL

Dans MySQL, les requêtes utilisant une fonction sur une colonne, telle que la date (TranDateTime), peut contourner l'index, entraînant un ralentissement des performances. Pour optimiser les requêtes sur la partie date d'un champ DATETIME, pensez plutôt à créer un index sur cette partie.

Le problème

Une grande table avec un champ DATETIME nommé TranDateTime constaté des performances lentes lors de l'interrogation d'enregistrements à une date spécifique à l'aide de :

SELECT * FROM transactionlist WHERE date(TranDateTime) = '2008-08-17'
Copier après la connexion

Le Solution

Pour améliorer les performances, créez un index sur la partie date de TranDateTime en utilisant la requête suivante :

CREATE INDEX idx_TranDate ON transactionlist (DATE(TranDateTime))
Copier après la connexion

Cet index permettra à MySQL de récupérer efficacement les enregistrements en fonction du date du champ TranDateTime, en optimisant la requête suivante :

SELECT * FROM transactionlist 
WHERE DATE(TranDateTime) = '2008-08-17'
Copier après la connexion

Supplémentaire Considérations

Alternativement, pour éviter d'utiliser une fonction dans la requête, envisagez d'utiliser une requête par plage :

SELECT * FROM transactionlist 
WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
Copier après la connexion

Cette requête doit récupérer tous les enregistrements survenus le 17/08/2008 , y compris ceux avec une composante temporelle.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal