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

juDge

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

Задача спроектировать БД для учета трафика
Исходные данные должны быть как минимум таблицы с пользователями(юзерами) и трафиком по каждому сайту (www.phpclub.ru, www.php.net и тд), предваритлеьный анализ показал что в среднем за пол месяца на пользователя может придтись по 14000 записей что за год составит примерно 168000 записей да еще если помножить на число прользователей 100 (приблизительно) получим очень внушительное количество записей ... выскажите плиз свои мения по вариантам конструкции БД?
PS
основной упор нужно сконцентрировать на скорости обработки данных а затем уж занятся избыточность данных
 

Demiurg

Guest
несколько миллионов записей - это еще не так страшно.
 

juDge

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

juDge

Новичок
каждый раз когда происходит обнавление лога ... сервис это замечает и все новые вхождения в лог парсит и ложит в таблицу ну естевственно суммируя сумму байт если запись с таким пользователем и урл есть
 

juDge

Новичок
когда кто-то в нет ползет тобиж в среднем сидят дет 5-10 челов в инете одновременно =)
 

Demiurg

Guest
А нельзя все это делать по cronу ? что бы сервер не напрягался ?
 

juDge

Новичок
нет, да я считаю что если правильно спроектировать БД это не будет особо влиять на скорость обработки данных
 

juDge

Новичок
ну вообщето в первом моем посте написано че спрашиваю =)
 

Demiurg

Guest
если ты имеешь ввиду это:
>выскажите плиз свои мения по вариантам конструкции БД?
то не понятно, что подразумевается под словом "конструкция" ? дизайн ?
 

juDge

Новичок
ну епрст ... столбцы испроьзовать ли CHAR вместо VARCHAR в столбцах, вынести ли урлы в отдельную таблицу как вообще максимально правильно спроектировать таблицу чтоб скорость обработки данных была максимальна ... в общем то мне от БД надо получить данные User_Name, User_Bytes, Url
тоесть скоко юзер скачал с определенного адреса байтиков
 

mix

Guest
А зачем хронить всю история (url) за весь год?
ИМХО, достаточно за последний месяц, а остальное сбрасывать в архив.
 

Demiurg

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

ONK

Пассивист PHPСluba
Я бы сделал несколько таблиц:

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

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

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

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

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

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

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

juDge

Новичок
ONK
ну хоть кто-то предложил дельное .. за что благодарствую =)

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