Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Оптимизировать запрс к базе
Форумы портала PHP.SU » » Вопросы новичков » Оптимизировать запрс к базе

Страниц (1): [1]
 

1. Sig - 05 Марта, 2013 - 10:33:51 - перейти к сообщению
переделывал фильтр товара на сайте, и допеределывался что время работы с базой увеличилось.....
кто знает как оптимизировать можно ещё

фильтр товаров
1-таблица.
id характеристики выбирается в таблице
2-таблица.
смотрятся все "id характеристики" и выбираются ID ТОВАРА
таблица имеет вид (ID ТОВАРА И ID ХАРАКТЕРИСТИКИ)
3-таблица.
выбранные id товара и будут показываться


$rowcategoryproductss1_count = количество характеристик для фильтра


select * FROM ".PRODUCTS_TABLE." where
productID IN (SELECT productID FROM ".PRODUCTS_OPTIONS_SET_TABLE." where
variantID IN (SELECT variantID FROM ".PRODUCTS_OPTIONS_VALUES_VARIANTS_TABLE." where option_value IN (1,2,3))
GROUP BY productID HAVING count(0)=".$rowcategoryproductss1_count."
2. Мелкий - 05 Марта, 2013 - 10:51:04 - перейти к сообщению
И где explain?
По запросу можно только сказать, что вложенные подзапросы mysql готовить умеет плохо.
3. Sig - 06 Марта, 2013 - 00:32:38 - перейти к сообщению
а если делать по отдельности каждый запрос, ответ помещая в массив ?
хотя как я понимаю это только хуже

наверно нужно переделывать на join
4. Zuldek - 06 Марта, 2013 - 09:40:20 - перейти к сообщению
Нужно Explain и спрятать шаманский бубен.

 

Powered by ExBB FM 1.0 RC1