autant pour moi, j'avais lu le poste de travers.
....Envoyé par Mr N.
Autrement c'est une peu bizarre que sa prenne plusieurs minutes si avec la ligne de commande mysql sa te prend 25 s.Envoyé par nourami
Sa met autant de temps avec phpMyAdmin ?








autant pour moi, j'avais lu le poste de travers.
....Envoyé par Mr N.
Autrement c'est une peu bizarre que sa prenne plusieurs minutes si avec la ligne de commande mysql sa te prend 25 s.Envoyé par nourami
Sa met autant de temps avec phpMyAdmin ?
je n'utilise pas phpMyAdmin, et ce dernier execute la requete avec limit donc le temp de reponse affiché est celle du records affichés seulement et non pas de la totalité.
j'ai utilisé MySqlAdministrator pour calculer ce temp.








Tu as essayer de mettre une page transitoire avec un form en auto submit ?
ca sert a quoi cette page transitoire pour mon probleme?
Simple curiosité : ton IN() peut comporter combien de valeurs au maximum ? C'est peut-être de là que vient le temps d'exécution.
Sinon, tu peux probablement sous-traiter la requête à un script que tu include() : il me semble que, de cette manière, le temps d'exécution de l'include n'est pas comptabilisé dans le temps d'exécution du script principal, ce qui te laisse 30 secondes de plus pour faire tes traitements.
Remarque, le temps dont a besoin MySQL pour faire sa requête ne devrait pas influer sur les 30 secondes du script in the first place...
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
le IN peut avoir au max 6 valeur mais le probleme n'est pas la
parceque avec la requete :ma page s'execute normale et me rend 300 records et avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM MaTable WHERE ch1=2 AND ch3=2qui me rend 130000 records ma page ne s'execute pas normale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM MaTable WHERE ch1=1 AND ch3=2
Je vais bientôt sécher, en ce cas...
Deux dernières suggestions :
- Si tu ne SELECT pas * mais des champs précis, ça améliore un peu, à tout hasard ?
- Aurais-tu moyen de mettre en place un système de redondance et/ou de cache ? Ok, ça va augmenter la taille de ta base mais cela permettrait certainement d'améliorer les perfs.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Je crois qu'il y'a une petite incompréhension :
- La requête fait 25 seconde
- La page met des minutes à s'afficher
Donc pour l'instant vous êtes sur la requête on est ok, mais à mon avis les plusieurs minutes c'est le navigateur qui met du temps à prendre toutes les lignes, car à mon avis il demande l'affichage de ces lignes.
Avec 40 K lignes on peut patienter déja plusieurs dizaines de secondes sur une requête qui prend même pas une seconde.
De ce coté là, y'a rien à faire, si ce n'est optimiser le code de la page, et répartir sur plusieurs pages (mais apparement pas possible, contrainte ?)








C'étaut pour sa que je proposais une page transitoire avec un form en auto submit. car ainsi la page est blanche pdt que le serveur process les lignes.
Si tu veux réduire l'affichage, tu peux utiliser :
- la compression : regarde du côté de ob_start()
- la séparation par pages : la clause LIMIT de MySQL est prévue pour ça, avec un paramètre dans l'url tu t'en sortiras facilement
- réduire la quantité de HTML produit : <div> au lieu de <table> par exemple
Le navigateur ne "demande" pas l'affichage des lignes. Il envoie une URL et demande une réponse mais il ne sait pas à l'avance ce qu'il y aura dedans (c'est d'ailleurs pour cette raison qu'il la demande). Seul le serveur sait ce que contient la page, il envoie ce qu'il veut au navigateur. Si tu souhaites réduire la taille de la page produite, c'est du côté script (PHP, j'imagine) et rien n'est envoyé implicitement : tu contrôles absolument tout ce qui est envoyé au navigateur.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
merci bien pour ces rem.
ma requete est lourde je n'ai pas le choix et ce que je veux comment faire pour que le navigateur m'indique tjs l'avencement du traitement
Je vote pour echo + flush + javascriptEnvoyé par nourami
De toutes façons, les SELECT * sont à éviter. Il vaut mieux nommer chaque champ nominativement.
Ensuite, si tu fais juste ta requete ûis que tu n'affiche QUE le nombre de résultats, ça prend combien de temps?
A priori, dans les 25 secondes je pense, d'après ce qui a été dit jusqu'ici.Envoyé par Calak
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
peut etre que tu peut essaye de traiter ta page avec tidy pour l'alleger un peut
avant de passer a utiliser tidy, j'ai dit que meme ma page n'affiche qu'une ligne par exemple , quand je click sur submit et apres 5 ou 6 second je n'aurai aucun signe que ma page est en cour de traitement et apres 25 s ou un peu plus j'aurai ma page resultat
As-tu pu regarder du côté des diverses manières de mettre en cache ?
Où en es-tu ?
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
oui , ma base se trouve ds un serveur optimisé (hard et soft) il donne des meilleurs resultat
Partager