flo001 Posté 19 Septembre 2008 Partager Posté 19 Septembre 2008 Bonsoir à tous, Me voila encore embêté avec ma bdd, j'ai un gros script qui compile beaucoup de stats toutes les nuits, quand je dis beaucoup c'est un script qui pourrait tourner une 1h sans s'arréter si je ne le partitionnais pas en petits morceaux. Je suis donc très étonné de la longueur d'execution de ce script car ce sont juste des enchainements de SELECT assez simples avec quelques jointures, la seule chose qui peut poser problème à mon avis est l'utilisation de beaucoup de LIKE. J'utilise ces LIKE afin de sélectionner les enregistrement par journée, j'ai dans mes tables pour chaques enregistrements des DATETIME donc du style 2008-09-16 16:05:00, pour sélectionner les données que je veux pour la journée du 16-09 j'utilise un date_stat LIKE "2008-09-16%", cela sur des tables de plusieurs centaines de milliers d'enregistrements. Je suppose donc que c'est cela qui prend beaucoup de temps, si vous avez une autre syntaxe pour ce genre de requéte qui permet d'éviter l'utilisation des LIKE ca serait top =) Merci, Florent Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dudu Posté 20 Septembre 2008 Partager Posté 20 Septembre 2008 Salut Tu devrais pouvoir t'en sortir en malmenant moins ta base grâce aux fonctions d'extraction de dates de MySQL (si ton SGBD est MySQL, tu n'as pas précisé): YEAR(), MONTH(), et DAYOFMONTH(). MySQL / Calcul sur les dates Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 20 Septembre 2008 Partager Posté 20 Septembre 2008 Hello, convertir les dates en chaine pour pouvoir les sélectionner à coup de "like", c'est assez original je trouve, mais ça limite sûrement l'utilisation des indexes. Je tenterais plutôt au choix : where date( tonChampDateTime ) = '2008-09-16' ou : where tonChampDateTime >= '2008-09-16' and tonChampDateTime < '2008-09-16' + interval 1 day Je ne sais pas dans quel situation MySQL utilise mieux les index... la première solution étant certainement plus proche. Dans tous les cas tester ces requêtes à coup d'EXPLAIN sera toujours utile. Lien vers le commentaire Partager sur d’autres sites More sharing options...
flo001 Posté 21 Septembre 2008 Auteur Partager Posté 21 Septembre 2008 Merci pour vos réponses intéressantes, je m'en vais tester ca tout de suite! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant