|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : janvier 2009 Messages : 45 ![]() |
Bonjour,
Voici ce qui m'arrive : j'ai une requête sur deux tables qui ont chacune 14000 entrées. Je fais une requête qui renvoie environ 6000 résultats, comprenant 4 champs, un INT, deux DOUBLE, et un ENUM. Le benchmark pour la requête seule est satisfaisant, mais php met un temps fou à récupérer le résultat SQL d"une part, et à faire la sortie à l'affichage d'autre part. Le benchmark SQL est extrait de phpMyAdmin, et indique 2,9 secondes. Le benchmark PHP indique 15 secondes en tout, requête comprise. Le résultat sql est bouclé pour ajout dans un tableau avec les fonctions mysql_*, et pour finir, le tout est envoyé avec json_encode(). Connaissez-vous un moyen d'extraire ces résultats plus rapidement à partir du moment où ils sont transmis à PHP ? Merci pour votre attention. |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
montre ton code
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : janvier 2009 Messages : 45 ![]() |
Hey, je l'ai plus sur moi, mais il s'agit d'un bouclage type :
Code :
|
||
|
|
00
|
|
|
#4 | ||
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
fait juste :
Code :
__________________
http://blog.stealth35.com/ |
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : janvier 2009 Messages : 45 ![]() |
Merci,
J'ai fait les tests sur un serveur toute la journée, et j'ai oublié d'emporter les FTP avec moi, je pourrai tester demain première heure. Concernant mysqli, je pourrai l'avoir, les bases seront sur un serveur à part, configuré que pour les BDD. C'est plus rapide en mysqli ? |
|
|
00
|
|
|
#6 | ||
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
c'est surtout plus moderne, mysql_* est une vielle extension, si ton mysqli est compilé avec mysqlnd t'auras accès au fetch_all
donc juste a faire : Code :
__________________
http://blog.stealth35.com/ |
||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : janvier 2009 Messages : 45 ![]() |
Bon, effectivement, ta solution a accéléré la sortie affichage, mais le temps de sortie des résultats est encore trop élevé, même en augmentant l'allocation mémoire pour le buffer de sortie mysql.
J'ai finalement opté pour une extraction des résultats par tranches successives, avec de multiples appels ajax au script, ce qui donne une expérience utilisateur correcte. Merci pour tout. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com