Maison > développement back-end > tutoriel php > Exemple d'analyse d'idées de traitement de Big Data en PHP

Exemple d'analyse d'idées de traitement de Big Data en PHP

小云云
Libérer: 2023-03-21 06:58:02
original
5257 Les gens l'ont consulté


J'ai rencontré un problème avec une version précédente lié à un rapport de traitement de données volumineux. J'avais déjà résolu ce problème avec le code du gestionnaire de synchronisation, mais il s'exécutait très lentement, ce qui m'obligeait à prolonger la durée maximale d'exécution du script de 10 à 15 minutes. Existe-t-il une meilleure façon de gérer de grandes quantités de données dans les sites PHP ? Idéalement, j'aimerais l'exécuter en arrière-plan et le rendre aussi rapide que possible. Ce processus comprenait le traitement de milliers de données financières. J'ai utilisé Laravel pour reconstruire le site.

Meilleure réponse populaire (de spin81) :

Les gens vous disent d'utiliser les files d'attente et ainsi de suite, c'est une bonne idée, mais le problème ne semble pas venir de PHP. Laravel/OOP est génial, mais le programme qui génère les rapports dont vous parlez ne semble pas que vous devriez avoir de problème. Pour une perspective différente, j'aimerais voir la requête SQL que vous avez utilisée pour obtenir ces données. Comme d'autres l'ont dit, si votre formulaire comporte des milliers de lignes, votre rapport ne devrait pas prendre 10 à 15 minutes. En fait, si vous faites tout correctement, vous pouvez probablement traiter des milliers d’enregistrements et terminer le même rapport en une minute.

1. Si vous effectuez des milliers de requêtes, voyez si vous pouvez d'abord effectuer seulement quelques requêtes. J'ai déjà utilisé une fonction PHP pour réduire 70 000 requêtes à une douzaine de requêtes, réduisant ainsi son temps d'exécution de quelques minutes à une fraction de seconde.

2. Exécutez EXPLAIN sur votre requête pour voir s'il vous manque des index. Une fois, j'ai fait une requête et l'efficacité s'est améliorée de 4 ordres de grandeur en ajoutant un index. Ce n'est pas une exagération. Si vous utilisez MySQL, vous pouvez apprendre ceci. Cette compétence de « magie noire » vous étourdira, vous et vos amis.

3. Si vous effectuez une requête SQL et obtenez les résultats et rassemblez beaucoup de nombres, voyez si vous pouvez utiliser quelque chose comme SUM() et Des fonctions comme AVG() appellent l'instruction GROUP BY. En règle générale, laissez la base de données gérer autant de calculs que possible. Un conseil très important que je peux vous donner est le suivant : (au moins dans MySQL) les expressions booléennes prennent une valeur de 0 ou 1, et si vous êtes vraiment créatif, vous pouvez le faire en utilisant SUM() et ses amis. Des choses très surprenantes.

4. D'accord, voici un dernier conseil du côté PHP : vérifiez si vous avez calculé plusieurs fois ces chiffres tout aussi chronophages. Par exemple, disons que le coût de 1 000 sacs de pommes de terre est coûteux à calculer, mais vous n'avez pas besoin de calculer ce coût 500 fois avant de stocker le coût de 1 000 sacs de pommes de terre dans une rangée ou quelque chose comme ça, donc vous ne le faites pas. Je n'ai pas besoin de répéter les mêmes calculs encore et encore. Cette technique est appelée mnémotechnique et elle fait souvent des merveilles lorsqu'elle est utilisée dans des rapports comme le vôtre.
Recommandations associées :

Solutions pour le Big Data, le trafic important et la concurrence élevée dans les sites Web PHP

Six tutoriels Javascript de base Explication détaillée de l'utilisation des types de données

Articles recommandés sur les tests de grands volumes de données

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal