Тема: Допоможіть критикою SQL запиту
Для ясності - я не програміст (3 роки юридичної практики), тому сподіваюсь на конструктивну критику.
В процесі створення проекту виникла необхідність виконувати такий запит:
SELECT tour_name, tour_variant_price,
GROUP_CONCAT( DISTINCT exp_travel_tour_date.tour_date_date ORDER BY tour_date_date ASC ) AS tour_dates
FROM exp_travel_tours
LEFT JOIN exp_travel_tour_date ON tour_id = tour_date_tour_id
LEFT JOIN exp_travel_tour_variants ON ( tour_id = tour_variant_tour_id
AND tour_variant_price = (
SELECT MIN( tour_variant_price )
FROM exp_travel_tour_variants
WHERE tour_id = tour_variant_tour_id )
)
WHERE tour_date_date > "2013-10-10"
GROUP BY exp_travel_tours.tour_id
ORDER BY tour_variant_price DESC
LIMIT 10
Тестовий результат вибоки:
array(2) {
[0]=>
array(3) {
["tour_name"]=>
string(6) "Тур"
["tour_variant_price"]=>
string(3) "180"
["tour_dates"]=>
string(65) "2013-10-14,2013-10-15,2013-10-16,2013-10-17,2013-10-18,2013-10-19"
}
[1]=>
array(3) {
["tour_name"]=>
string(8) "тур 2"
["tour_variant_price"]=>
NULL
["tour_dates"]=>
string(43) "2013-10-22,2013-10-23,2013-10-24,2013-10-25"
}
}
В таблиці буде <= 5000 записів, навантаження на проект максимально 10 запитів в секунду.
Питання: наскільки поганий цей запит?
Bartash: код слід брати у теги [ code ].