Optimisation laraver partie 1: démarrer
Dans le cache. La solution consiste à s’assurer que seules les méthodes ENV () sont utilisées dans le fichier de configuration et que ces valeurs sont chargées dans le Code d’application en utilisant la méthode config (). Laraver simplifie considérablement le travail de la base de données en utilisant un orm remarquable et éloquent. Eloquent vous permet de définir un modèle qui représente essentiellement des objets qui représentent des lignes dans un tableau. Il vous permet également d’abstraiter de nombreuses relations entre les tables de base de données standard, ce qui rend les relations de modèle très faciles à définir et à utiliser. Par exemple, supposons qu’un utilisateur puisse avoir plusieurs tâches. Dans votre code, c’est comme suit:
Modèle d’extension de l’utilisateur de classe {\/ \/ \/… Tâches de fonction publique () {retourner $ceci – > hasmany (‘app \ Task’);}} Par conséquent, lorsque vous voulez récupérer toutes les tâches associées à l’utilisateur, le Code est très simple: $task = $user – > task; Cependant, toutes ces abstractions peuvent facilement oublier l’impact du Code sur le rendement. Par exemple, supposons que vous vouliez faire défiler tous les utilisateurs et récupérer les tâches pour chaque utilisateur. Vous pouvez le faire: $ Utilisateurs = utilisateurs:: tous (); Foreach ($Users as $user) {$tasks = $user – > tasks; \/ \/ each dump ($tasks);} S’il y a 5 utilisateurs dans la base de données, ce code génère 6 requêtes: 1 pour récupérer tous les utilisateurs et 1 pour récupérer les tâches pour chaque utilisateur.
Narrateur: J’utilise le paquet laraver debugbar pour m’aider à vérifier les requêtes qui fonctionnent sur la page. Apparemment, ça pourrait bientôt devenir incontrôlable. Comment résoudre ce problème (aussi connu sous le nom de problème de requête \
Gérer des millions de lignes): User:: with (‘tasks’) – > chunk (200, Function ($Users) {foreach ($Users as $user) {$tasks = $user – > tasks; \/ \/ make some Processes…}}}); La prochaine fois, nous examinerons quelques optimisations de performance de base qui peuvent être effectuées dans laraver. Dans mon prochain article, nous examinerons des techniques plus avancées pour optimiser la performance de l’application laraver, y compris l’utilisation de tâches à long terme de téléchargement de file d’attente, l’utilisation correcte des index de base de données pour améliorer la performance des grandes bases de données, et quand et comment l’utiliser pour mettre en cache des images.
Avez – vous déjà optimisé les performances de l’application laraver? Avez – vous des suggestions à partager? Avez – vous rencontré des problèmes en essayant d’améliorer les performances? Veuillez nous le dire dans vos commentaires. Il s’agit de la série \