Как хранить и записывать в базу большое количество строк?

Здравствуйте,

Мне необходимо записывать в базу данные о document.referrer каждого пользователя каждую новую сессию.
Посещаемость сайта 100000 в сутки, за 2 часа создалось 3500 строк на 500 кб(это много?)
58b53c5078.png835888409e.png
Подскажите пожалуйста, как можно оптимизировать нагрузку?
  • Вопрос задан
  • 479 просмотров
Пригласить эксперта
Ответы на вопрос 2
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
давайте для начала разберемся с математикой.
3500 за 2 часа - это 49000 за 24 часа (а скорее меньше, загрузка то днем наверняка больше, чем ночью). Уже не 100 000.
много ли 500Кб? все зависит от глубины хранения, производительности сервера и того, что Вы планируете с этими данными делать.
глубина: 500кб(за 2 часа)*12 = 6Мб. 180 мб в месяц, 2,2 гига в год. У меня на одном из серверов есть БД на 12 гигабайт, с таблицами по 7-8 млн строк. работает вполне шустро.
производительность: Если Вы решите хранить данные, предположим, 10 лет, и получите в результате 20-30 гигов данных - то глупо рассчитывать крутить все это богатство на сервере с 1-2 Гб памяти и медленными дисками.
использование: Если эти данные будут только накапливаться и изредка извлекаться - это одно. Если параллельно с записью будут идти активно селекты - это другое. Но тут все опять-же повлияет на требования к производительности.

скажем так, на любом современном железе с нормальным объемом памяти (гигов от 8) Ваша база в обозримом будущем(2-3 года) будет чувствовать себя нормально. Хотя активность запросов на выборку может внести свои коррективы в оценки.
Ответ написан
@dmitryKovalskiy
программист средней руки
500Кб - не много. Возможно стоит как-то уточнить необходимость вставки. Например если указанные данные не менялись. Как вариант - если эти данные не жизненно необходимы, а используются для логирования, то можно их хранить в другой базе(убрать нагрузку с основной) или писать в XML, но это усложнит обработку.

UPD : Вы пишете в базу не большое количество строк, а делаете МНОГО запросов на добавление. Разница достаточно велика. В вашей формулировке можно предположить что вы добавляете сотни строк за раз, а это не правда.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы