c'est ma structure date-heure de base:Comment optimiser la recherche d'heure dans Mysql?
primary key(datetime) key
auot_id date_time user_id
1 2010-10-01 20:32:34 1
2 2010-10-02 20:32:34 1
3 2010-11-03 20:32:34 2
4 2010-10-04 20:32:34 1
5 2010-11-05 20:32:34 1
Et je veux obtenir le résultat de la day(date_time)
à '2010-10'
et la user_id = '1';
My SQL est:
SELECT * FROM datetime WHERE user_id = 1 AND DATE_FORMAT(date,'%Y-%m') = '2010-10'
mais l'affichage du code EXPLAIN
:
SIMPLE datetime ALL (NULL) (NULL) (NULL) (NULL) 5 Using where
donc, cette ligne de code ne semble pas être très efficace. Comment pourrais-je construire la table pour rendre ma recherche plus efficace?
Merci beaucoup !!
Je suis nouveau à mysql. Donc, je ne suis pas sûr de quel genre d'index devrais-je ajouter? Je pense que j'avais fait index sur eux: INDEX 'date' (' date', 'user_id') – qinHaiXiang
Vous le voulez l'inverse car' user_id' est une valeur "statique", comme 'date' est passé à une fonction . – Danosaure
Voir https://dba.stackexchange.com/a/140693/39319 où l'utilisateur explique mieux comment couvrir toutes les dates et heures si vous êtes préoccupé par les transactions de minuit –