2009-07-18 2 views
4

Я нахожусь в процессе регистрации действий пользователя для моего сайта PHP.Журналы PHP - mysql vs file

Вы бы рекомендовали хранить их в mysql или в текстовых/журнальных файлах?

ответ

5

Зависит от того, что вы хотите делать с теми, я бы сказал:

  • Если вам нужно получить данные из журналов, сохраняя их в MySQL может помочь
  • Если вам нужно только иметь некоторые данные, которые вы почти никогда не использовать (но необходимо в случае, если что-то незаконное делается на вашем сайте, или тому подобное), файл может быть достаточно хорошо

чтобы не замедлять вещи слишком много, вы также можете использовать оба (я использовал это на некоторых сайтах с небольшим количеством трафика, w здесь не было бы разумно хранить данные в БД немедленно):

  • в течение дня, хранить журналы в файле
  • и один раз в день (или один раз в час, вы получите идею) , используйте партию для анализа этих файлов и поместите данные в базу данных

Таким образом, вы не вставляете данные в БД все время; и вы можете (при условии, что прошел день или час), все запросы, которые вам нужны

+1

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

+0

действительно; также зависит от нагрузки на сервер БД, я думаю, –

+0

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

0

Я бы порекомендовал MySQL, так как тогда легче просмотреть журнал, например административную область. Затем вы также можете установить различные флаги, то есть уровни ошибок, и фильтровать через журнал, чтобы найти интересные предметы. Также вы можете легко создать функцию статистики по этим данным, намного проще, чем в файлах журналов.

Но я думаю, это зависит от того, как вы должны использовать свой журнал и кем их следует использовать. Сырые файлы журнала немного вызывающим :)

1

Я бы рекомендовал использовать что-то вроде Zend_Log для абстрагирования от фактического «физического» ведения журнала. Таким образом, вы всегда можете легко изменить бэкэнды позже, если ваша ситуация изменится по той или иной причине.

0

Большинство инструментов анализа журналов нуждаются в необработанном файле журнала для синтаксического анализа. Если вы смотрите на журналы сами, db может быть лучше (с условиями pascal сказал). Но если вы планируете провести настоящий анализ, будет проще использовать файлы журналов.