Ako vylepsit tento SQL?

Programovacie jazyky, rady, poradňa...
shanoy
Star
Star
Používateľov profilový obrázok
Príspevky: 509
Registrovaný: 30 sep 2006, 8:02
Bydlisko: Brezovapolis
Kontaktovať používateľa:

Ako vylepsit tento SQL?

Príspevok od používateľa shanoy »

Dobry den, rad by som sa spytal ako by sa dal vylepsit tento SQL dotaz, aby bol co najrychlejsie? Resp. nebolo by lepsie tento doraz rozdelit na mensie a potom ich vysledok foreachom spojit? Dakujem za kazdu odpoved

Kód: Vybrať všetko

SELECT a.title AS articles_title, 
a.content AS articles_content, 
a.excerpt AS articles_excerpt, 
a.slug AS articles_slug,
a.views AS articles_views, 
a.views AS articles_views, 
CONCAT(up.first_name, ' ', up.last_name) AS articles_author, 
DATE_FORMAT(a.created, '%T %d.%m.%Y') AS articles_created, 
(SELECT IFNULL(ROUND(AVG(av.vote), 1), 0) FROM articles_votes av WHERE a.id = av.article_id) AS articles_votes, 
(SELECT COUNT(ac.id) FROM articles_comments ac 
 WHERE a.id = ac.article_id) AS articles_totalcomments
FROM (`articles` a)
JOIN `user_profiles` up ON `a`.`author_id` = `up`.`user_id`
WHERE `id` =  9
ORDER BY `a`.`created`
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Ako vylepsit tento SQL?

Príspevok od používateľa harrison314 »

Ak mas nahadzane indexi vsade tam kde treba, jedine co ma napada je denormalizacia.
Do tabulky articles pridas articles_votes a articles_comment ako dalsie stlpce, len sa musis podrata o to aby bli v konzistentonom stave.
Napísať odpoveď