J'ai un problème de performance lent dans la comparaison de plusieurs tableaux.
L'algorithme que j'ai fabriqué est: p>
Je serai en boucle d'abord les tableaux par foreach p> afin de comparer plusieurs tableaux, J'utilise seulement ceci si condition et symbole comparatif (==). Mais je pense que si p> p>
3 Réponses :
Ne faites pas référence à la base de données de la boucle, vous pouvez utiliser Array_Column pour exporter une matrice de branches vers des colonnes "UserID" et "UserbranchID" fin de la requête de construction en utilisant "où" p>
Je suis d'accord avec @Thaiha, vous pouvez réduire vos requêtes à une seule et après avoir effectué la comparaison des tableaux. Par exemple, dans MySQL, vous pourriez faire quelque chose comme.
select * from `permissions` where (`user_id `, `branch_id `) in (('1', '2'), ('2', '4'));
au lieu d'une matrice en boucle. Je suggère d'utiliser un chargement impatient à la place.
Modèle de branche p> et dans votre contrôleur p> lire le document ici : https://laravel.com/docs/6.x/eloquent-RelationShips a> p> p>
Cela dépend de l'endroit où vient le tableau d'origine. Il peut être possible de procéder à ce traitement à ce stade plutôt que de devoir boucler dans la matrice et de vérifier les détails. Il est généralement plus rapide de réduire le nombre d'appels de base de données dans la mesure du possible pour la performance.
La solution optimale que ce code est de le supprimer, car cela ne fait rien.