Оптимизация базы мускул. (Медленные SQL запросы)
Добрый день - проблема следующего порядка в компании 1gb нам отключили базу данных интернет магазина из за превышения нагрузки на сервер.
Главный параметр из за которого отключили базу - количество просмотренных строк (tmp) у нас 5615611
на впорос а сколько по вашему должно быть служба техподдержки ответила:
"2012-07-14 19:54 1Gb.ru: с нашей точки зрения допустимое значение 10 тысяч для редких запросов, для частых - еще меньше."
Т.з.Мы хотим оптимизировать базу добившись значений приемлемых для хостера.
НА данный момент база отключена - можем дать дамп что бы вы оптимизировали на локальной машине.
ниже преставлен запрос по логам сервера:
use gb_podarki;
SET timestamp=1341628340;
SELECT SQL_CALC_FOUND_ROWS
products.product_id, products.url, products.category_id, products.brand_id, products.model, products.price, products.old_price, products.guarantee, products.description, products.body, products.quantity, products.hit, products.order_num, products.small_image, products.large_image, products.created, products.modified, products.enabled, products.quantity,
brands.name as brand, brands.url as brand_url, brands.title_text as title_text,
categories.single_name as category, categories.url as category_url, categories.image as category_image,
products.price*(100-0)/100 as discount_price,
g1.large_image g1_large_image, g2.large_image g2_large_image, g3.large_image g3_large_image, g4.large_image g4_large_image, g5.large_image g5_large_image,
g1.small_image g1_small_image, g2.small_image g2_small_image, g3.small_image g3_small_image, g4.small_image g4_small_image, g5.small_image g5_small_image,
brands.gift_active, brands.gift_text, products.gift
FROM products
LEFT JOIN categories ON categories.category_id = products.category_id
LEFT JOIN brands ON products.brand_id = brands.brand_id
LEFT JOIN products g1 ON g1.url = brands.gift_url1
LEFT JOIN products g2 ON g2.url = brands.gift_url2
LEFT JOIN products g3 ON g2.url = brands.gift_url3
LEFT JOIN products g4 ON g2.url = brands.gift_url4
LEFT JOIN products g5 ON g2.url = brands.gift_url5
LEFT JOIN products_categories ON products.product_id = products_categories.product_id
WHERE
categories.enabled=1
and products.enabled=1
AND ( (categories.category_id in(160) ) OR (products_categories.category_id in(160) ) ) GROUP BY products.product_id ORDER BY categories.order_num, products.order_num DESC LIMIT 500, 50;
з.ы. размер дампа базы 16 мегабайт