Je lance des requêtes mysql select 3500 fois dans une boucle for et effectue des opérations sur les valeurs retournées par les requêtes en PHP. ce processus prend 16 secondes à exécuter pour la boucle. toute suggestion pour réduire le temps d'exécution et améliorer les performances. Merci!Comment réduire le temps d'exécution du programme en PHP et comment améliorer les performances
Répondre
Refactorisez votre sélection MySQL de sorte que vous ne l'exécutez qu'une fois, pas 3500 fois. Dites-nous les questions en question, et nous serons en mesure de vous aider à le faire
En fait, je lance les requêtes en fonction de la période de temps. par exemple je reçois le nombre de connexions d'utilisateur quotidien depuis 2001. merci pour vos suggestions et donnez quelques suggestions à Refactor MYSQL – KMK
@KMK - nous montrer les requêtes SQL, et nous pourrions être en mesure de refactoriser pour vous - la solution la plus évidente pour un La requête de période de temps est avec un groupe par - mais sans connaître les requêtes, il n'y a pas beaucoup plus que nous pouvons réellement faire pour aider. –
Salut Mark Baker, J'ai besoin de code pour exporter les données de la table de visualisation de Google vers Excel et PDF. S'il vous plaît aidez-moi. J'attendrais votre réponse. Merci – KMK
Essayez de minimiser le nombre de requêtes, avez-vous vraiment besoin de 3500 requêtes ou pouvez-vous sélectionner toutes les lignes dans un seul appel? Si ce n'est pas le cas, vous pouvez obtenir des performances en utilisant des instructions préparées PDO vous offre une interface facile à utiliser pour cela.
http://dk2.php.net/manual/en/book.pdo.php
http://dk2.php.net/manual/en/pdo.prepare.php
S'il vous plaît coller du code si je dois être plus précis :)
Bonne solution - PDO préparer le type de précompile l'instruction mais avec des variables dynamiques, donc si vous devez * l'exécuter 3500 fois, ce sera encore beaucoup plus rapide. –
En fait, je cours des requêtes basées sur la période de temps. merci pour votre suggestion. – KMK
je fais face au même problème que vous.
La quantité de connexions mysql que vous ouvrez pendant l'opération sera critique. Essayez de les exécuter tous en une seule connexion. Si vous avez besoin de plusieurs connexions, utilisez plutôt mysql_pconnect.
Évitez d'utiliser des commandes que mysql ne peut pas mettre en cache. (par exemple, MAINTENANT()) Pour obtenir une liste de ces commandes, consultez le lien ici: http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html J'y parviens en changeant ma requête de temps réel en heure.
Évitez autant que possible les grandes instructions, essayez de les réduire en plus petites et utilisez du code pour les relier entre elles. Plus la déclaration est petite, plus la mise en cache est facile, ce qui conduit à de meilleures performances. Enfin, si vous avez besoin d'une solution rapide, memcached est une solution très bonne et rapide à implémenter.
La règle générale est la suivante: si vous pouvez exécuter des instructions moins nombreuses et plus simples, c'est mieux.
- 1. Comment améliorer les performances du programme iPhone SQLite3
- 2. Comment améliorer le temps de chargement XML de PHP?
- 3. Comment améliorer les performances du code avec DateTime.ToString?
- 4. Comment puis-je améliorer les performances du contrôle RichFaces ScrollableDataTable?
- 5. Comment améliorer les performances de jqGrid
- 6. Comment améliorer les performances via Python multithread
- 7. Comment améliorer les performances du service Web WCF?
- 8. Améliorer les performances dans scrollview
- 9. Comment améliorer les performances de défilement d'UIWebView?
- 10. Générer JSON - comment améliorer les performances
- 11. comment générer un programme Java pour réduire le temps d'exécution
- 12. Comment améliorer les performances dans Oracle en utilisant SELECT DISTINCT
- 13. Comment améliorer les performances en utilisant Processing for Android?
- 14. Comment réduire le temps de démarrage et la consommation de mémoire d'un programme Java?
- 15. Une idée pour améliorer les performances du cache pour un programme à grande échelle?
- 16. Améliorer les performances de défilement de UIWebView
- 17. Améliorer les performances de localisation? (ComponentResourceManager.ApplyResources)
- 18. Améliorer les performances des méthodes
- 19. Comment réduire le temps de téléchargement
- 20. Comment réduire le temps de connexion MySQL
- 21. Comment améliorer les performances de l'écriture de données dans le registre?
- 22. Comment puis-je améliorer les performances de cette requête?
- 23. Comment puis-je améliorer les performances de liaison Silverlight?
- 24. Comment puis-je améliorer les performances WMI dans .NET?
- 25. Réduire les variations de performances sous Linux
- 26. Comment gagner du temps en temps UTC en php/mysql?
- 27. Comment réduire le temps de chargement de DirectX?
- 28. améliorer les performances de l'application Android
- 29. Comment améliorer les performances de ce calcul numérique dans Haskell?
- 30. Comment améliorer les performances de ce LINQ simple?
Pourriez-vous poster le code de votre boucle? – andrewmu
Interroger en boucle est presque toujours une mauvaise idée. S'il vous plaît nous montrer votre requête et ce que vous essayez de faire exactement. –