powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / статистика посещений проектирование базы
11 сообщений из 11, страница 1 из 1
статистика посещений проектирование базы
    #38468365
ambasador
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую Всех участников форума!
Пишется счетчик посещений для сайта, возникли некоторые вопросы по проектированию базы. Параметров не так много это - ip адрес посетителя, страна(геолокация), уникальных посетителей, просмотров страниц, от куда пришел; все же объем в ~20k уников заставляет меня задуматься о производительности базы, Так вот я думаю сделать главную таблицу:
id | ip_address | time
и от нее уже делать связные таблицы это соответственно - country, views, uniq etc.
Хотя может и не стоит пороть горячку по этому поводу, все же выслушаю все ваши пожелания и замечания.
Спасибо!
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38468463
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ambasadorстрана(геолокация)Точно геолокация? или просто по ИП смотришь?

ambasadorобъем в ~20k уников заставляет меня задуматься о производительности базыМмм... 7.5 млн. в год - не так уж и много.

По сабжу - вынеси зависимые неидентифицирующие текстовые поля (адрес прибытия, адрес страницы, прочая фигня) в связанную таблицу, просто чуть удобнее будет. А вообще имхо пофиг, если не на первом пеньке всё делается...
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38468516
ambasador
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да просто выдергивание страны по айпи из базы от MaxMind LLC, вот пример http://www.cleverscript.ru/php/scripts/40-geolocation.html#.UondnW0vBxA
Ясно, Вообще нужно чтобы заносилось это все максимально быстро, чтобы не тормозило основной механизм сайта, а генерирование отчетов из этой базы это седьмой вопрос там в принципе можно и подождать.
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38468560
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ambasadorнужно чтобы заносилось это все максимально быстро, чтобы не тормозило основной механизм сайта, а генерирование отчетов из этой базы это седьмой вопрос там в принципе можно и подождать.
Ну тогда... например: одна таблица, MyISAM, никаких индексов кроме синтетического счётчика, и никаких UPDATE и DELETE. Максимум - партиционирование по дате создания записи.
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38468664
ambasador
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
Как понять синтетический счетчик?
Кстати о партиционировании, не так давно слышал об этом, но особого значения не придал, сейчас немного просмотрел статьи - якобы производительность возрастает при больших объемах, вот пример их хабра хотелось уточнить чтобы поэкспериментировать немного:
select create_partition('partitions.test1.cdate', 'date', 'day,YYYY_MM_DD', now()::text) вот здесь автор создает партицию в базе partitions в таблице test1 в поле cdate, и к примеру эта таблица заполнилась в течении какого-то времени, потом просто можно select * from partitions.test1 where cdate = '2013-11-18' и этот запрос будет только затрагивать партицию этого дня?
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38468799
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ambasadorКак понять синтетический счетчик?
Искусственный. Не имеющий отображения на свойства сущности. В данном случае - тупо порядковый номер записи в порядке появления в таблице. Счётчик.
Но вообще кому-то неплохо чё-нить почитать по основам...

ambasadorсейчас немного просмотрел статьи
Ну какие нахрен статьи? Ты весь мануал по этому вопросу прочитал? официальный, разработчицкий... нет? так вот пока не прочитаешь, за "статьи" даже не берись.
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38468822
ambasador
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мануал так мануал )
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38469306
ambasador
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, поторопился я с выводами, create_partition это кастомная функция в хранимках а я то думал она нативная, вот от сюда: habrahabr.ru/post/152125/ .
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38469380
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ambasador , тебе не кажется, что применять постгрессовские выводы и эксперименты к MySQL несколько ... ммм ... неправильно?

Да, хабр - это ни хрена не мануал. Мануал - вот тут .
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38470216
ambasador
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да не я читал, плохо то что разрабы не сделали функцию автодобавления партиции, чтобы шлеп прописал не думая, приходится выкручиваться самому: create event + alter table add partition by range... и без хранимок не обойтись похоже, впринципе можно через крон добавлять. А так по основной теме сделал таблицу register:
id | ip | referer | timedate
Akina
То есть ты хочешь просто инсертить каждого пришедшего(включая повторно) юзера, и уже отфильтровывать потом:
select date(timedate)as td, count(ip) from register group by td; -- кол-во просмотров в день
select date(timedate)as td, count(distinct ip) from register group by td; -- кол-во уникальных в день...
...
Рейтинг: 0 / 0
статистика посещений проектирование базы
    #38470250
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господи, да создай ты один раз партиций до конца века, делов-то... даже если они ежедённые - всё равно всего-то 30 тыс. получится.

А так да - если ты явно даёшь в условии отбора дату-литерал, то дёргаться будут исключительно нужные разделы. Этому в мануале специально целый раздел посвящён...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / статистика посещений проектирование базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]