Доброго времени суток, друзья. Помогите оптимизировать запрос для фильтрации данных. Есть такой запрос, сейчас он отрабатывает 1,5 секунды. Возможно ли как то ускорить его работу?
EXPLAIN SELECT r.id, o.name AS objectName,
(SELECT MAX(d2.`valuePercent`) FROM discounts AS d2
JOIN `rooms` AS r2 ON d2.`roomId` = r2.id
WHERE r2.objectId = r.objectId) AS `valuePercent`,
d.type, o.stars, o.`infoAboutObject`, o.id AS objectId, o.url,
r.`price`, o.`address`, o.`image`, c.`name` AS cityName, o.longitudeGps, o.latitudeGps,
(SELECT GROUP_CONCAT(DISTINCT otp1.`class` SEPARATOR ',') FROM objects_types_pluses AS otp1
JOIN objects_objects_types_pluses AS ot1 ON ot1.`objectTypePlusesId` = otp1.id WHERE ot1.`objectId` = o.id)
AS className,
(SELECT GROUP_CONCAT(DISTINCT otp1.`name` SEPARATOR ',') FROM objects_types_pluses AS otp1
JOIN objects_objects_types_pluses AS ot1 ON ot1.`objectTypePlusesId` = otp1.id WHERE ot1.`objectId` = o.id)
AS pluseName,
(SELECT COUNT(rev.id) FROM reviews AS rev WHERE rev.objectId = o.`id`) AS reviewCount,
(SELECT GROUP_CONCAT(DISTINCT os1.`name` SEPARATOR ',') FROM objects_servises AS os1
JOIN objects_relation_objects_servises AS oros ON oros.`objectServiceId` = os1.id WHERE oros.`objectId` = o.id)
AS objectsServisesName,
GROUP_CONCAT(DISTINCT os.`name` SEPARATOR ',') AS objectsServisesName,
o.raitingValue
FROM objects AS o
JOIN cities AS c ON o.`cityId` = c.`id`
LEFT JOIN objects_objects_types_pluses AS op ON op.`objectId` = o.id
LEFT JOIN `objects_types_pluses` AS otp ON op.`objectTypePlusesId` = otp.`id`
JOIN rooms AS r ON o.`id` = r.`objectId`
LEFT JOIN discounts AS d ON r.`id` = d.`roomId`
LEFT JOIN objects_relation_objects_servises AS oros ON o.`id` = oros.`objectId`
LEFT JOIN objects_servises AS os ON oros.objectServiceId = os.`id`
WHERE (
d.`valuePercent` =
(
SELECT MAX(d1.`valuePercent`)
FROM discounts AS d1
JOIN `rooms` AS r1 ON d1.`roomId` = r1.id
WHERE r1.objectId = r.objectId
) OR d.`valuePercent` IS NULL
) AND c.countryId = 1
GROUP BY o.id
LIMIT 7 OFFSET 0
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости