Как сэкономить пространство в журнал аудита?


Было создать систему, которая мне вводить данные моих пользователей в соответствии с датой, что я прошу, от X до Y, например. И единственный способ, который я нашел, чтобы это было, создать таблицу таким образом:

date с даты, которая была вставлена в формат DATE

name имя, которое было сохранить, например Браузер

value значение, введенное, например, в Google Chrome

ip с IP-адреса пользователя

время, которое пользователь вводит я чехии, если есть row даты СЕГОДНЯ с именем БРАУЗЕРА, если не существует, он вставляет, если он ничего не делает.

ну, в этом смысле он гнев вставить browser пользователей, которые просматривали мой сайт, а затем я могу выбрать, создавать графики, etc

проблемой для него было бы пространство, это не будет занимать слишком много места? Принимая во внимание, например media 5-10 тыс посещений в день, и принимая во внимание, что не хочу, чтобы захватить только browser. Как я могу решить эту проблему?

Author: Maniero, 2014-12-27

2 answers

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

Вас log, доступ к сайте on? Все сайте обычно. Никто не жалуется на отсутствие места для него. Там есть все эти сведения, которые вы хотите, и, вероятно, в более избыточным, что будет хорошо, больше места.

Если вам не хватает места купите больше. Если вы не можете купить, то перестаньте делать то, что, занимая место. Не существует чуда.

Есть, Конечно, и решения mirabolantes но, вероятно, не стоит сложность, кроме того, быть сомнительной, если даст хороший результат, дисковое пространство-это до смешного дешево и без рисков.

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

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

Проблема такого ответа в том, что если для создания линии для каждого доступа, вероятно, нет смысла создавать базу данных, эта строка уже существует в файле log HTTP-сервера. Просто отправиться туда и сделать статистику, что хотите. Дублировать усилия, да будет тратить пространство. На самом деле, другие люди уже сделали это для вас и есть сотни или тысячи программ, коммерческих и бесплатных, которые генерируют статистику, достаточно полная.

 6
Author: Maniero, 2019-01-21 14:49:16

Некоторые вещи могут быть изменены, чтобы сэкономить место, но его не так просто.

Во-Первых, вы говорите иметь name и value.

Не было бы лучше создать один столбец для каждого value исправить?

   date    |   name    |     value     |      ip
2014/12/27 | BROWSER   | GOOGLE CHROME | 127.0.0.1
2014/12/27 | HTTP_REF  | GOOGLE.COM    | 127.0.0.1

В Этом случае существовал ли дублирования, дата и ip, которая может быть решена, если бы это было:

 date      |   browser       |     HTTP_REF     |      ip
2014/12/27 | GOOGLE CHROME   |    GOOGLE.COM    | 127.0.0.1

Таким образом, будет экономит несколько строк и дубликатов данных.

Почему бы не использовать INT?

Если имя, введенное вами, потому что не использовать INT?

0 -> BROWSER
1 -> HTTP_REF

   date    | name  |     value     |      ip
2014/12/27 | 0     | GOOGLE CHROME | 127.0.0.1
2014/12/27 | 1     | GOOGLE.COM    | 127.0.0.1

Cron-Job, чтобы удалить старые данные

При сохранении ежедневно, создайте CronJob 00:00 и он за всех средних необходимые и удалять данные, на старом TRUNCATE. Так бы преобразовать 10mil строк, содержащий все к вашим данным, уже вычислены.

 1
Author: Inkeliz, 2014-12-27 18:31:11