Cześć, w fazie developmentu aplikacji mobilnej, serwer api pisałem na szybko, teraz przyszedł czas na optymalizacje zapytań, zakładając mam takie zapytanie:
SELECT distinct News.*,(SELECT count(subscribeNews.apikey) from subscribeNews WHERE subscribeNews.NewsID = News.id AND subscribeNews.apikey = ?) AS subscribe,(SELECT firmDetails.miasto from firmDetails WHERE News.apikey = firmDetails.apikey) AS firmcity ,(SELECT firmDetails.name from firmDetails WHERE News.apikey = firmDetails.apikey) AS firmname,(SELECT firmDetails.ulica from firmDetails WHERE News.apikey = firmDetails.apikey) AS firmulica ,(SELECT firmDetails.email from firmDetails WHERE News.apikey = firmDetails.apikey) AS firmemail ,(SELECT firmDetails.phone from firmDetails WHERE News.apikey = firmDetails.apikey) AS firmphone, (SELECT count(comment.id) from Comment WHERE Comment.NewsID = News.id AND Comment.user_api = ?) AS liczbaComment FROM News WHERE News.status = 'dodano' ORDER BY dataOD DESC LIMIT ? OFFSET ? ;
w jaki sposób najlepiej to doprowadzić do porządku? join inner? korzystać z widoków? w jaki sposób tego typu zapytania zapisać żeby sie możliwie najszybciej wykonywały?