powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите структуру БД
14 сообщений из 14, страница 1 из 1
Подскажите структуру БД
    #32850013
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишется сервис типа спайлога.
стал вот такая трабла. Есть таблица, в которую пишется, время и, например, IP посетителя.
Так вот, когда нужно сдлеать выборку по конкретному сайту, и сгрупировать по страницам информацию (сколько раз посещалась каждая страница), то получается грустно по производительности. СУБД Мускул, записей в ней 8 миллионов. Запрос, описанный выше обрабатывается 30-50 секунд. Группируется 80 тысяч записей в 12 строк. Думали для каждого пользователя создать отдельную таблицу... т.е. соклько пользователей, столько и таблиц ,потом думали по времени разделять таблицы. но, что-то не нравятс идеи - кривы какие-то. Подскажите, пожалуйста, варианты.
как повлиять на скорость запроса?
----------------------------------------
Артитсты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850100
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cДумали для каждого пользователя создать отдельную таблицу... т.е. соклько пользователей, столько и таблиц
Уж вот только не так, ИМХО.
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850117
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как же избавится от выборок по ключу с результатами в надцать тысяч строк?
----------------------------------------
Артитсты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850125
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И чем плох это вариант???? Хотелось бы услашть конструктивный ответ, потому как у меня просто догадки, так как опыта в проектировании очень мало...
----------------------------------------
Артитсты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850146
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделай таблицу, в которой будут содержаться готовые сгруппированные данные, которые или триггером на получение новой записи в детальную таблицу апдейтить или джобом рассчитывать каждые 10-15 минут (смотря насколько точные результаты нужны)

для получения искомого отчета просто выбираешь все из этой таблицы
------------------
Best regards, _bob
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850151
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cХотелось бы услашть конструктивный ответ
Так может стоит задать конструктивный вопрос, где будет существующая структура, сформулированная задача, конкретные цифири. Может у тебя индекса нужного нет просто.
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850154
olk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Индексы пробовали строить ?
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850165
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно сказал "Серега" вариант с множеством таблиц очень плох, хотя бы вот по таким причинам:
1) Новая таблица -- это изменение структуры БД
2) Такая организация не является правильной с точки зрения нормализации
3) Количество таблиц имеет предел
4) Сложность администрирования (как вы будете управляться с прорвой таблиц?)
5) Любая модернизация -- жуткий геморрой (собственный опыт)
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850311
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> стал вот такая трабла.

Я бы разделил задачи заполнения таблиц и чтения. Т. е. разнес бы таблицы. При заполнении оптимизировал бы запись (убрать индексы, проверки и пр.), при чтении - соответственно, выборки (индексы, нормализация и пр.).
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850314
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте OLAP
в любом случае, если железо не справляется с нагрузкой надо ему помочь хранением избыточной информации. в данном случае - предрасчитанные сгруппированные суммы
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850532
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное Спасибо за помощь!!!! индексировать - пробовал - не помогает;))) ..... Буду пробовать. По поводу конструктивного вопроса. вот онА как же избавится от выборок по ключу с результатами в надцать тысяч строк? Я так понимаю систематизировать все запросы и хранить их результаты в других таблицах, а по крону выполнять обновление данных в этих таблицах так получается?
----------------------------------------
Артитсты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850683
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4m@t!cОгромное Спасибо за помощь!!!! индексировать - пробовал - не помогает;))) ..... Буду пробовать. По поводу конструктивного вопроса. вот он А как же избавится от выборок по ключу с результатами в надцать тысяч строк? Я так понимаю систематизировать все запросы и хранить их результаты в других таблицах, а по крону выполнять обновление данных в этих таблицах так получается?
----------------------------------------
Артитсты не приехали, приехали цыгане


Уж не знаю, как вы индексируете, но у меня на Информиксе 9.21 на довольно слабенькой машине запрос выполняется за 3 секунды :

create table t1 (site_id int,
page_id int,
user_ip char(8),
user_time datetime year to second )

create procedure ins_t1 (num int);
define i int;
for i = 1 to num
insert into t1 values (mod(i, 100), mod (i, 12), "12345678", current);
end for
end procedure

execute procedure ins_t1 (8000000);

create index i1 on t1(site_id, page_id);

select site_id, page_id, count(*)
from t1
where site_id = 1
group by 1, 2


site_id page_id (count(*))

1 1 26671
1 5 26670
1 9 26669

3 row(s) retrieved.

real 0m3.84s
user 0m0.03s
sys 0m0.04s
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32850806
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cПо поводу конструктивного вопроса. вот он А как же избавится от выборок по ключу с результатами в надцать тысяч строк?
Это не конструктивный вопрос, а глас вопиющего в пустыне.
Если записей много, и по ним надо делать выборки, то от этого не избывиться.
С Новым Годом.
...
Рейтинг: 0 / 0
Подскажите структуру БД
    #32851187
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, протупил..;))))
Т.е. либо менять структуру БД, либо периодически запускать крон, который бует делать такие большие выборки....

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


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