Посоветуйте структуры для БД

  • Автор темы Автор темы juDge
  • Дата начала Дата начала

juDge

Новичок
Посоветуйте структуры для БД

Задача спроектировать БД для учета трафика
Исходные данные должны быть как минимум таблицы с пользователями(юзерами) и трафиком по каждому сайту (www.phpclub.ru, www.php.net и тд), предваритлеьный анализ показал что в среднем за пол месяца на пользователя может придтись по 14000 записей что за год составит примерно 168000 записей да еще если помножить на число прользователей 100 (приблизительно) получим очень внушительное количество записей ... выскажите плиз свои мения по вариантам конструкции БД?
PS
основной упор нужно сконцентрировать на скорости обработки данных а затем уж занятся избыточность данных
 
несколько миллионов записей - это еще не так страшно.
 
это не страшно когда обращение носят "единичный" характер ... но дело в том что есть сервис ктороый в режиме реального времени висит и парсит все изменения в логе доступа в инет сбрасывая вновь поступившую инфу в БД
 
каждый раз когда происходит обнавление лога ... сервис это замечает и все новые вхождения в лог парсит и ложит в таблицу ну естевственно суммируя сумму байт если запись с таким пользователем и урл есть
 
когда кто-то в нет ползет тобиж в среднем сидят дет 5-10 челов в инете одновременно =)
 
А нельзя все это делать по cronу ? что бы сервер не напрягался ?
 
нет, да я считаю что если правильно спроектировать БД это не будет особо влиять на скорость обработки данных
 
ну вообщето в первом моем посте написано че спрашиваю =)
 
если ты имеешь ввиду это:
>выскажите плиз свои мения по вариантам конструкции БД?
то не понятно, что подразумевается под словом "конструкция" ? дизайн ?
 
ну епрст ... столбцы испроьзовать ли CHAR вместо VARCHAR в столбцах, вынести ли урлы в отдельную таблицу как вообще максимально правильно спроектировать таблицу чтоб скорость обработки данных была максимальна ... в общем то мне от БД надо получить данные User_Name, User_Bytes, Url
тоесть скоко юзер скачал с определенного адреса байтиков
 
А зачем хронить всю история (url) за весь год?
ИМХО, достаточно за последний месяц, а остальное сбрасывать в архив.
 
ну вот значит вторая табличка у тебя будет архивом. Сам же на свои вопросы отвечаешь.
 
Я бы сделал несколько таблиц:

1 таблица для временного хранения данных (для добавления записей в реальном времени), структура этой таблицы должна быть похожа на то что уже обсудалось user|size|url. В эту таблицу я бы кидал лог всех запросов в течении дня.

Дальше я бы создал таблицу пользователей user_id|user
таблицу запросов url_id|url

и несколько статистических таблиц

user_id|url_id|cnt|size
статистика по пользователям + страницам количеству загрузок и общему размеру.

user_id|date|size
статистика по пользователям / (дням, месяцам годам....) и размеру

И ещё куча таблиц,, всё зависит от необходимости сбора и анализа той или иной статистики..

В результате в течении дня (часа) заполняется основная таблица журнала, а затем в режиме транзакции обрабатывается вся накопившаяся за этот период выремени информация и рассовывается по статистическим таблицам длительного хранения. Экономия дискового простанства при таком подходе просто огромная + из-за оптимальности структуры таблиц получаются очень эффекивные запросы на извлечение различной статистики
 
ONK
ну хоть кто-то предложил дельное .. за что благодарствую =)

Demiurg
к сведенью у меня ник juDge =) читай внимательней, я на свои вопросы не отвечал ...
 
Сверху