Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
здравствуйте
вопрос:
на доске объявлений у объявления есть такие параметры
регион
город
раздел
категория
рубрика
тип товара
+
частный/бизнес
новый/бу
покупка/продажа/обмен/бесплатно
при выборе сочетаний которых требуется выводить на странице сумму объявлений в зависимости от их комбинации, актуальные (по возможности) данные
1 по региону (городу)
2 всего, покупка, продажа, обмен, бесплатно
3 разделу (категории/рубрике/типу товаров
+ в зависимости от указанных критериев
пример: мы на странице московской области в разделе транспорт + отмечены "частные, бу, продажа"
требуется
1 показать сумму объявлений по критериям (отмечены) в городах московской области, если они в них есть
2 количество объявлений по всей области в разрезе покупка/продажа/обмен/бесплатно
3 сумму объявлений по области в разрезе подкатегорий выбранного раздела
(если снимем галочку "частные" - то все тоже, только для всех видов объявлений и частных и бизнес)
сейчас работает, только основывается на count самой таблицы объявлений, что уже жутко тормозит...
нужно переделать
склоняюсь к подсчету данных в счетчиках при добавлении объявлений и создании общей таблицы заранее.
перекрестная таблица с возможными комбинациями условий отбора получается в 40 полей и около 100 млн записей в 30 Г.
установлено несколько комбинированных индексов для выборок.
за одну вставку объявления придется выполнить около 25 обновлений в аггрегатной таблице
(проинкрементить сумму в регионе, регионе+частные, регионе+новые, регионе+частные и новые, в рогоде и т.д.)
, в ней идет только обновление и чтение.
основная таблица с объявлениями обновление, чтение + добавление, удаление около 2000 строк в сутки, активное чтение 4-10тыс хостов, всего 500 тыс-1 млн строк.
предварительны тесты в одного пользователя показывают что на выборку тратится 3*0,05сек
какие проблемы могут вылезти при таком обновлении/чтении, на таком размере?
объем растет самих объявлений и пользователей.
как это можно организовать на базе этого?
по другому?
может кто сталкивался?
спасибо.
Неактивен
kirill_n написал:
сейчас работает, только основывается на count самой таблицы объявлений, что уже жутко тормозит...
нужно переделать
А как вы считаете статистику? Одним навороченным запросом или несколькими запросами на count(*) по покрывающим индексам? Второй вариант должен работать быстро.
Неактивен
Самый оптимальный вариант написать скрипт статистики и считать всё в отдельную таблицу небольшими запросами которые не будут вызывать нагрузку на базу
Неактивен
Страниц: 1