@cubooks
Web-developer

Как оптимизировать SQL запрос?

Добрый день!

SELECT `products`.*, `pd`.`date_action`, `categories`.`name` AS category_name, `categories`.`name_url` AS cat_url_name, `maps`.`name_url` AS map_url_name, `maps`.`name` AS map_name, `maps`.`img` AS map_image, `pd`.`id` AS id_date
FROM (`products`)
LEFT JOIN `categories` ON `categories`.`id` = `products`.`id_category`
LEFT JOIN `maps` ON `maps`.`id` = `products`.`map_action`
LEFT JOIN `products_dates` AS pd ON `pd`.`id_product` = `products`.`id`
WHERE `products`.`archive` = "yes"
GROUP BY `pd`.`id_product` DESC
ORDER BY `pd`.`date_action` ASC
LIMIT 20, 10


Данный запрос выполняется 10 секунд, и пожирает под 40% процессора. (в базе около 1600 записей с arсhive=yes)
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Запустите EXPLAIN запроса и посмотрите, на чём он тормозит. Из общих рекомендаций:
- cменить тип поля `products`.`archive` с текстового на BOOLEAN или TINYINT(1);
- проверить наличие индексов по все полям, участвующим в ON, WHERE, GROUP BY и ORDER BY.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы