Avatar billede hoppe11 Nybegynder
09. august 2009 - 18:28 Der er 2 kommentarer og
1 løsning

udførselstid og resourcer

jeg vil gerne høre db eksperterne efter om det bedst kan svare sig at lave 3 små forespørgsler eller samle dem sammen som i eksemplet nedenfor

SELECT filefolder.id, filefolder.owner_user_id, filefolder.time_valid, user.name, COUNT(file_event.id) AS num_pic, tmp.num_tag
FROM $DB.event_filefolder filefolder
LEFT JOIN $DB.user user ON user.id=filefolder.owner_user_id
LEFT JOIN $DB._file_event file_event ON file_event.ref_id=filefolder.id
LEFT JOIN
(
    SELECT file.ref_id, COUNT(tag.id) AS num_tag
    FROM $DB._file_event file
    INNER JOIN $DB._file_event_tag tag ON tag.file_id=file.id
    GROUP BY file.ref_id
) tmp ON tmp.ref_id=filefolder.id
WHERE filefolder.event_id='".$_GET['id']."' && filefolder.time_valid!=0
GROUP BY filefolder.id DESC
Avatar billede arne_v Ekspert
09. august 2009 - 20:29 #1
Nu er det ikke helt klart for mig hvad de tre små queryes du sammenligner med er.

Men generelt bør du nok teste med den slags spørgsmål.

Og allerførst skal du definere hvad bedst performance er:
- laveste svartid for siden
- lavest CPU forbrug på DB server
- lavest IO operationer på DB Server
- mindst båndbredde mellem web server og DB server
Avatar billede hoppe11 Nybegynder
09. august 2009 - 20:38 #2
jamen hvis man f.eks. splittede query'en op som jeg skrev..

en som returnerer filefolder.*
en som returnerer COUNT(file_event.id)
en som returnerer COUNT(tag.id)

for mig og som du selv antyder skal man begrænse sine forespørgsler til db serveren hvilket jeg også har forsøgt i eksemplet :)

jeg har dog ikke lige fornuftig stor database at teste på, så ville egentlig bare vide om det nu også var fornuftigt at samle sine forespørgsler sammen eller om det bedst kunne svare sig at splitte dem op i små... i mit eksempel 3 mindre forespørgsler
Avatar billede hoppe11 Nybegynder
16. august 2009 - 23:26 #3
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester