Question

Travailler avec MySQL ces derniers temps, de PHP, je me demande à ce sujet:

  • Quel est l'impact sur les performances en utilisant les temps de multiples mysql_real_escape_string() à un script?
  • Est-il utile d'essayer de réduire le nombre d'appels à cette fonction pour un script donné?
  • détermine-t-il le jeu de caractères de la connexion à chaque fois est appelé, ou cette valeur est mise en mémoire cache?

Si un scénario est nécessaire, je pense à PHP, et la distinction entre texte et des chiffres, où le nombre (en utilisant intval(), floatval() ou moulages directs) peuvent être inclus sans appel.

Était-ce utile?

La solution

Ne pas être sou-sage et de la livre stupide.

Vos questions sont dans le domaine des micro-optimisations. Création d'un index nécessaire ou la mise en cache certains résultats de la requête aura un ordre de grandeur plus d'avantages que se soucier de l'impact sur les performances de quelques appels à mysql_real_escape_string().

Par ailleurs, typecasting avec (int) $variable est légèrement plus rapide que d'appeler intval($variable). Mais ce serait aussi un micro-optimisation.

Autres conseils

Si vous avez besoin d'échapper à l'entrée d'utilisateur avant l'entrée de base de données, vous devez utiliser mysql_real_escape_string() ... ne vous inquiétez pas trop sur l'optimisation prématurée.

Vous pouvez regarder dans les instructions préparées qui vous évitera de devoir appeler cette fonction à plusieurs reprises -. Et il est plus sûr car il sépare la logique SQL d'entrée utilisateur tout à fait

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top