De query below takes like 9seconds to complete, which is not acceptable.
Can some body help me to edit this query to improve the performance
$dataProvider=new CActiveDataProvider('Daytrip', array(
'criteria'=>array(
'select'=>array(
'GeoDistKM(ci.latitude, ci.longitude, ' . $result['latitude'] . ', ' . $result['longitude'] . ') AS distance',
't.id_daytrip',
't.daytrip',
't.street',
't.number',
't.phone',
't.website',
't.deeplink',
't.youtube',
'ci.city',
'ci.latitude',
'ci.longitude',
'GROUP_CONCAT(DISTINCT ca.category ORDER BY ca.id_category SEPARATOR ", ") AS categories',
'GROUP_CONCAT(DISTINCT ta.tag ORDER BY ta.tag SEPARATOR ", ") AS tags',
),
'join'=>'LEFT JOIN city ci ON ci.id_city = city_id LEFT JOIN daytrip_category dc ON id_daytrip = dc.daytrip_id
LEFT JOIN category ca ON id_daytrip = dc.daytrip_id LEFT JOIN daytrip_tag dt ON id_daytrip = dt.daytrip_id
LEFT JOIN tag ta ON ta.id_tag = dt.tag_id LEFT JOIN daytrip_category cf ON id_daytrip = cf.daytrip_id',
'condition'=>'active = 1 AND cf.category_id IN (' . implode(',', $categories) . ')',
'group'=>'id_daytrip',
'order'=>'1, city, priority DESC, RAND(CURDATE())',
'limit'=>100,
'together'=>false,
'with'=>array()
),
'pagination'=>false,
));