Mysql
 sql >> Base de données >  >> RDS >> Mysql

Dois-je utiliser des instructions préparées pour MySQL dans PHP PERFORMANCE-WISE ?

L'histoire

C'était ma première réponse Stackoverflow. Beaucoup de choses ont changé depuis, notamment la dépréciation et la suppression de l'API mysql. Même si vous êtes toujours sur php 5.6, l'api mysql_* ne doit pas être utilisée. Désormais, PDO ou mysqli sont les seules options à choisir. PDO est préférable pour de nombreuses raisons.

Les instructions préparées sont-elles mises en cache lors des chargements de page ?

La même instruction préparée ne sera pas utilisée entre les chargements de page. Il faut le préparer à chaque fois. Si la compression de chaque grande milliseconde est importante, une procédure stockée peut être une bonne idée (en supposant que vous avez une requête compliquée).

Pour les insertions volumineuses (des milliers de lignes), un plus grand coup de pouce peut probablement être obtenu en vidant vos données dans un fichier texte et en le chargeant avec LOAD DATA IN FILE . C'est beaucoup plus rapide qu'une série d'insertions.

La réponse originale

La vérité est que parfois mysqli est plus rapide et à d'autres moments mysql api est plus rapide. Mais la différence est vraiment très petite. Si vous regardez l'un des tests de performances sur le Web, la différence n'est vraiment que de 10 à 20 millisecondes. La meilleure façon d'améliorer les performances consiste à optimiser la conception des tableaux.

La plupart des tests qui « prouvent » que l'ancienne API est plus rapide oublient que pour une sécurité maximale, mysql_real_escape_string() doit être appelé pour chaque variable utilisée dans la requête.

Les requêtes sont mises en cache par le serveur, si et seulement si les données de toutes les tables utilisées dans la requête sont restées inchangées.

Attendez une autre mise à jour avec les chiffres réels