SELECT `n`.`news_id`, `t`.`newstext_title`, `t`.`newstext_text`, `n`.`news_publish`,`p`.* FROM `news` AS `n` JOIN `newstext` AS `t` ON `n`.`news_id`=`t`.`newstext_parent` JOIN `news2cat` AS `nc` ON `n`.`news_id`=`nc`.`news2cat_news` LEFT JOIN `news2photo` AS `np` ON `np`.`news2photo_news`=`n`.`news_id` LEFT JOIN `photo` AS `p` ON `np`.`news2photo_photo`=`p`.`photo_id` WHERE `n`.`news_status`='1' AND `n`.`news_publish`<='1198155351' AND (`n`.`news_publishend`>='1198155351' OR `n`.`news_publishend`=0) AND `nc`.`news2cat_category` IN ('1', '2', '3', '4', '11', '5', '13', '8', '6', '14', '20', '7', '15', '9', '10', '16', '17', '18', '19', '12') GROUP BY `n`.`news_id` ORDER BY `n`.`news_publish` DESC LIMIT 0, 10
i wykonuje się ono w granicach 20 sekund co jest nie do przyjęcia. W tabelach news i newstext znajduje się po około 80 tysięcy rekordów w tabeli photo jest około 40 tysięcy wpisów tabela news2photo to około 50 tysięcy rekordów.
Pytanie co zrobić żeby przyspieszyć to zapytanie do jakiegoś znośnego czasu?