Existe-t-il une sorte d'optimisation côté serveur (comme dans une base de données MySQL) qui permet à une requête préparée par un utilisateur de bénéficier de la requête précédemment préparée par un autre utilisateur? (L'accent est mis sur les améliorations possibles de performance entre les utilisateurs, chaque requête au cours d'un script php séparé.)Instructions préparées PHP/MySQL - Un utilisateur peut-il bénéficier de la requête préparée par un autre utilisateur?
Exemple:
requête pour l'utilisateur 1: SELECT * FROM SomeTable OÙ item1 =? et item2 =?
article 1 = x 2 = article y
requête pour l'utilisateur 2: SELECT * FROM SomeTable OÙ item1 =? et item2 =? (Même requête comme ci-dessus)
article 1 = y article 2 = z
Si cette requête préparée identique (mais avec des paramètres différents à chaque fois) ne sera exécutée une fois pour chacun de ces différents utilisateurs, est-il un gain de performance potentiel de l'utilisation d'une requête préparée?
Ou serait-il préférable d'utiliser la fonction real_escape_string sur les éléments 1 et 2, et de les placer dans la requête. Cela éviterait d'effectuer deux déplacements sur la base de données, l'un pour vérifier la validité de la requête préparée et l'autre pour exécuter la requête.
Je ne suis pas si inquiet à propos de l'injection SQL, car avec l'échappement approprié, l'une ou l'autre méthode devrait être tout aussi sûre. (Droit?) Je me demande honnêtement si cela vaut la peine d'utiliser des instructions préparées si je ne répète pas l'exécution de la même requête préparée plusieurs fois dans le même script php.
Merci!
Wow! C'est génial! Je vous remercie! (Et j'utilise une version de MySQL supérieure à 5.1.17) – hithere
Bonus: Si vous voulez optimiser votre MySQL, vous pouvez utiliser ce script: http://mysqltuner.pl Il va analyser le tas de variables disponibles avec ' montrez les variables pour vous et donnez de bons conseils sur ce qui devrait être changé. – greg0ire