Вот мое мнение о том, что оно стоит:
Сайт:
Same as what you have
Трафик:
id,
site_id,
ip,
request_DateTimeStamp <- this is a date and time for the url request
здесь не в счет, просто войдите сюда, вот почему:
assume you do have a count column
- url is requested
- lock up a record in the database with the same date and hour and ip
- Found, update the account
- Not Found, Create a new record and set the count to 1
это долгий процесс для таблицы, которая, по-видимому, будет многократно обновляться: в течение часа несколько запросов от одного и того же ip будут пытаться обновить одну и ту же запись, и им придется ждать друг друга.
уберите этот столбец подсчета, и ваш процесс состоит в том, чтобы просто регистрировать входящий трафик, всегда создавая новые записи.
Что касается анализа данных, вы можете сделать это несколькими способами:
Вы можете попробовать построить кубы: http://datacharmer.blogspot.com/2010/01/multi-dimensional-cubes-in-mysql.html
или вы можете создать таблицы агрегации информации, такие как site_total_hits, и просто обновлять их, используя ночные задания, или часто, если вы хотите их запускать, в зависимости от того, насколько точными они должны быть.
это мои 2 цента: D