Le titre le résume. Je suis raisonnablement bien avec PHP et je suis à l'aise de le faire faire ce dont j'ai besoin avec des valeurs tirées de MySQL, mais dans l'intérêt d'étendre mes connaissances, je me demandais si ce serait peut-être une technique plus efficace dans le long terme. Sont-ils équivalents (car ils représentent à peu près la même quantité de traitement à la fin), ou existe-t-il des cas où l'un présente un avantage distinct sur l'autre?
8
Réponses:
Cela dépend beaucoup de ce que vous faites avec les enregistrements et de l'apparence de votre architecture réseau. Par exemple, si la procédure stockée va réduire la quantité globale de données transmises de MySQL à PHP, et que vous avez un lien relativement lent entre l'instance PHP et la base de données, un SP pourrait certainement vous aider.
Je vous recommande de commencer par certaines des manipulations `` plus lourdes '' que vous faites pour vos données côté PHP, de voir ce que vous pouvez écrire en tant que SP, puis de les comparer.
la source
Un point en faveur de plus de traitement dans la base de données est que la base de données ne peut pas optimiser ce qu'elle ne voit pas. Par exemple, la définition d'une propriété d'une classe persistante à une valeur constante pour toutes les instances fonctionnera certainement mieux si elle est effectuée dans la couche de base de données.
Un point contre est que les bases de données sont bonnes pour les opérations basées sur des ensembles, mais pas si bonnes pour les opérations basées sur des lignes. Par exemple, quelque chose comme la conversion d'une heure UTC en heure locale basée sur un fuseau horaire variant par ligne peut ne pas fonctionner aussi bien dans la base de données que dans la couche d'application.
la source
Habituellement, si le résultat est une agrégation, (somme, moyenne, nombre), il est beaucoup plus rapide d'être calculé dans le serveur de base de données, en évitant une communication inutile entre le serveur et le client. De plus, le classement et le regroupement peuvent bénéficier des index, ce qui réduit la quantité de calcul.
la source