4m@t!c
Александр
Подскажиет структуру БД или методологию
Пишется сервис типа спайлога.
стал вот такая трабла. Есть таблица, в которую пишется, время и, например, IP посетителя.
Так вот, когда нужно сделать выборку по конкретному сайту, и сгрупировать по страницам информацию (сколько раз посещалась каждая страница), то получается грустно по производительности. СУБД Мускул, записей в ней 8 миллионов. Запрос, описанный выше обрабатывается 30-50 секунд. Группируется 80 тысяч записей в 12 строк. Думали для каждого пользователя создать отдельную таблицу... т.е. соклько пользователей, столько и таблиц ,потом думали по времени разделять таблицы. но, что-то не нравятс идеи - кривые какие-то и негибкие.
Есть еще вариант. Создать таблицу, которая содержит результаты подобных групповых запросов. В эту таблицу налету записывать информацию.
Например: есть ИД сайта, равный 5-ти. Есть таблица группированных данных по страницам, сколько раз просматривали, с полями ИД сайта, имя паги, кол-во просмотров. алгоритм занесения инфы в такую таблицу следующий. приходит очередная инфа о посещении страницы и сразу проверяется, если информация о паге есть в таблице, то прибавляем к кол-ву еденцу, если ее нет, то добавлем новую строку.
вопросы:
1. Насколько корректен последний вариант?
2. Если я изобретаю велосипед, то как он выглядит, намекните, пожалуйста?
Пишется сервис типа спайлога.
стал вот такая трабла. Есть таблица, в которую пишется, время и, например, IP посетителя.
Так вот, когда нужно сделать выборку по конкретному сайту, и сгрупировать по страницам информацию (сколько раз посещалась каждая страница), то получается грустно по производительности. СУБД Мускул, записей в ней 8 миллионов. Запрос, описанный выше обрабатывается 30-50 секунд. Группируется 80 тысяч записей в 12 строк. Думали для каждого пользователя создать отдельную таблицу... т.е. соклько пользователей, столько и таблиц ,потом думали по времени разделять таблицы. но, что-то не нравятс идеи - кривые какие-то и негибкие.
Есть еще вариант. Создать таблицу, которая содержит результаты подобных групповых запросов. В эту таблицу налету записывать информацию.
Например: есть ИД сайта, равный 5-ти. Есть таблица группированных данных по страницам, сколько раз просматривали, с полями ИД сайта, имя паги, кол-во просмотров. алгоритм занесения инфы в такую таблицу следующий. приходит очередная инфа о посещении страницы и сразу проверяется, если информация о паге есть в таблице, то прибавляем к кол-ву еденцу, если ее нет, то добавлем новую строку.
вопросы:
1. Насколько корректен последний вариант?
2. Если я изобретаю велосипед, то как он выглядит, намекните, пожалуйста?