Вопрос

Работа с MySQL в последнее время, от PHP, мне интересно, об этом:

  • Каково влияние на производительность, используя mysql_real_escape_string() несколько раз в скрипте?
  • Стоит ли попытаться уменьшить количество вызовов к этой функции для данного скрипта?
  • Определяет ли он набор символов соединения, каждый раз вызывается, или это значение кэшируется?

Если необходимо сценарию, я думаю о PHP, и различие между текстом и цифрами, где числа (используя intval(), floatval() или прямые касты) могут быть включены без вызова.

Это было полезно?

Решение

Не будь пенни-мудрым и глупым фунтом.

Ваши вопросы находятся в царстве микро оптимизации. Создание необходимого индекса или кэширования некоторых результатов запроса будет иметь порядок большего количества пользы, чем беспокоиться о воздействии на производительность нескольких вызовов на mysql_real_escape_string().

Кстати, типопередача с (int) $variable немного быстрее, чем звонить intval($variable). Отказ Но это тоже будет микрооптимизация.

Другие советы

Если вам нужно избежать ввода пользователя перед записью базы данных, вам придется использовать mysql_real_escape_string() ... Не волнуйтесь слишком много о преждевременной оптимизации.

В качестве альтернативы вы можете посмотреть в подготовленные заявления, которые будут сохранять вас, чтобы вызвать эту функцию несколько раз - и она более безопасна, так как он разделяет логику SQL от ввода пользователей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top