Вход SQL-запросов в производство? - PullRequest
3 голосов
/ 04 июня 2010

У меня возникла дилемма о том, регистрировать ли или нет запросы SQL в производстве.

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

Что замедляет процесс или не замедляет его? Или от чего это может зависеть?

Ответы [ 4 ]

3 голосов
/ 04 июня 2010

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

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

1 голос
/ 04 июня 2010

У вас есть пара вариантов:

  • ваша база данных регистрирует запросы
  • Создайте класс логгера со статическим методом, который использует дескриптор кэшированного файла для записи в ... это довольно быстро. Кроме того, вы можете настроить этот класс так, чтобы он просматривал переменную log в config, чтобы просто игнорировать входящий SQL-запрос или записывать его в файл. Предполагая, что вы используете API базы данных, вы можете просто расширить функцию запроса, включив эту дополнительную строку кода для (необязательного) ведения журнала
0 голосов
/ 04 июня 2010

Для записи (вы не указали свою БД) в Postgresql есть набор параметров , связанных с ведением журнала. Среди них я использую log_min_duration_statement для регистрации запросов, которые выполнялись более N секунд. Полезно для профилирования, не заполняя файлы журналов и не влияя на производительность. Держу пари, что в большинстве баз данных есть что-то похожее.

0 голосов
/ 04 июня 2010

Ну, вещь номер 1, которая будет медленной, - это дисковый ввод-вывод с помощью нажатия на db. Лучший ответ для вас - попробовать это в некоторых нетривиальных случаях (помните, что все быстро для малых n) и спросить некоторых заинтересованных лиц, приемлема ли производительность. Возможно, это не тот ответ, который вам нужен, но это действительно лучший ответ.

...