Оптимизация подсчета результатов в сложных запросах

MFLM

Добрый вечер.Ломаю голову, как правильно устроить подсчет данных из одной таблицы с множеством условий.Краткое псевдо-описание таблиц и связей:Основные таблицыpart (id, price, part_make_id)part_make (id)car_make (id)car_model (id, car_make_id)part_category (id, parent_id)Связующие таблицыpart_to_car_model (part_id, car_model_id)part_to_part_category (part_id, part_category_id)Задача -- нужно иметь возможность для каждой записи в part_category запрашивать кол-во запчастей в этой категории, с учетом доп. условий. Пример -- кол-во записей в категориях (меняющееся с учетом доп. условий -- т. е. могут быть еще таблицы со связями), http://www.ebay.co.uk/sch/Vehicle-Parts-Accessories-/131090/i.html?LH_Price=6%2C667..%40c&rt=nc&LH_ItemCondition=11&_dmpt=UK_CarParts_Acc_Wheels_tyres_Rims_Car_Wheels_ET&_fln=1&_mPrRngCbx=1&_ssov=1&_trksid=p3286.c0.m1539Записей в таблице part будет более миллиона, простые группирующие запросы не подойдут.Собственно, вопрос -- как организовать промежуточное хранение (для count()) оптимальным образом?
1 ответ

MFLM

делаешь запрос какой надо с SQL_CALC_FOUND_ROWS
SELECT SQL_CALC_FOUND_ROWS .....
а потом смотришь сколько бы строк вернулось если бы этот запрос выполнился
SELECT FOUND_ROWS()
кажись только LIMIT x,y игнорируется