DrFreez
@DrFreez

Логирование трафика в БД — как нормализовать?

Есть структура:
connect_ip (id, src_ip, dst_ip) ~6 млн. записей
connect_time (id, ip_id, time_start, time_end) ~30 млн. записей

В существующую структуру надо добавить protocol, src_port, dst_port

Как лучше поступить? Сделать ещё одну таблицу connect_port или запихать порты в connect_ip? Куда запихать протокол? MySQL
  • Вопрос задан
  • 2520 просмотров
Пригласить эксперта
Ответы на вопрос 3
На сколько я знаю, по правилам нормализации, выносить в отдельную таблицу.
Ответ написан
Комментировать
@0LLEGator
"Начинающий" программист в средней компании.
На мой взгляд лучше добавить поля к connect_time, правда придётся разрешить в них значения null.
Не стоит множить сущности без необходимости, а количество полей на скорость не влияют. Тем более что вся инфа в одной таблице и дополнительно джойнить, более того, скорее всего left join-ом, не придётся.
Ответ написан
Комментировать
vollossy
@vollossy
Веб-разработчик с небольшим опытом работы
Я бы посоветовал, как и @0LLEGator добавить в существующую таблицу(просто потому, что это логичнее выглядит, не так страшен джоин, как его почему-то малюют :-) ). Только вот вместо NULL-значений бы установил дефолтными из области недопустимых(0, -100 или что-то в этом роде), т.к. NULL- значения не удастся выбрать при помощи индекса, что может замедлить некоторые запросы. Хотя, конечно, зависит от задачи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы