Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Пишется сервис типа спайлога. стал вот такая трабла. Есть таблица, в которую пишется, время и, например, IP посетителя. Так вот, когда нужно сдлеать выборку по конкретному сайту, и сгрупировать по страницам информацию (сколько раз посещалась каждая страница), то получается грустно по производительности. СУБД Мускул, записей в ней 8 миллионов. Запрос, описанный выше обрабатывается 30-50 секунд. Группируется 80 тысяч записей в 12 строк. Думали для каждого пользователя создать отдельную таблицу... т.е. соклько пользователей, столько и таблиц ,потом думали по времени разделять таблицы. но, что-то не нравятс идеи - кривы какие-то. Подскажите, пожалуйста, варианты. как повлиять на скорость запроса? ---------------------------------------- Артитсты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 15:37 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
4m@t!cДумали для каждого пользователя создать отдельную таблицу... т.е. соклько пользователей, столько и таблиц Уж вот только не так, ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 16:03 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
А как же избавится от выборок по ключу с результатами в надцать тысяч строк? ---------------------------------------- Артитсты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 16:08 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
И чем плох это вариант???? Хотелось бы услашть конструктивный ответ, потому как у меня просто догадки, так как опыта в проектировании очень мало... ---------------------------------------- Артитсты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 16:10 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
сделай таблицу, в которой будут содержаться готовые сгруппированные данные, которые или триггером на получение новой записи в детальную таблицу апдейтить или джобом рассчитывать каждые 10-15 минут (смотря насколько точные результаты нужны) для получения искомого отчета просто выбираешь все из этой таблицы ------------------ Best regards, _bob ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 16:18 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
4m@t!cХотелось бы услашть конструктивный ответ Так может стоит задать конструктивный вопрос, где будет существующая структура, сформулированная задача, конкретные цифири. Может у тебя индекса нужного нет просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 16:19 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Индексы пробовали строить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 16:19 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Как правильно сказал "Серега" вариант с множеством таблиц очень плох, хотя бы вот по таким причинам: 1) Новая таблица -- это изменение структуры БД 2) Такая организация не является правильной с точки зрения нормализации 3) Количество таблиц имеет предел 4) Сложность администрирования (как вы будете управляться с прорвой таблиц?) 5) Любая модернизация -- жуткий геморрой (собственный опыт) ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 16:23 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
> стал вот такая трабла. Я бы разделил задачи заполнения таблиц и чтения. Т. е. разнес бы таблицы. При заполнении оптимизировал бы запись (убрать индексы, проверки и пр.), при чтении - соответственно, выборки (индексы, нормализация и пр.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 17:14 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
попробуйте OLAP в любом случае, если железо не справляется с нагрузкой надо ему помочь хранением избыточной информации. в данном случае - предрасчитанные сгруппированные суммы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 17:15 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Огромное Спасибо за помощь!!!! индексировать - пробовал - не помогает;))) ..... Буду пробовать. По поводу конструктивного вопроса. вот онА как же избавится от выборок по ключу с результатами в надцать тысяч строк? Я так понимаю систематизировать все запросы и хранить их результаты в других таблицах, а по крону выполнять обновление данных в этих таблицах так получается? ---------------------------------------- Артитсты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 19:10 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 02:11 |
|
||
|
Подскажите структуру БД
|
|||
|---|---|---|---|
|
#18+
4m@t!cПо поводу конструктивного вопроса. вот он А как же избавится от выборок по ключу с результатами в надцать тысяч строк? Это не конструктивный вопрос, а глас вопиющего в пустыне. Если записей много, и по ним надо делать выборки, то от этого не избывиться. С Новым Годом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 09:04 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=160&tid=1546121]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 396ms |

| 0 / 0 |
