Stel ik heb een groot aantal joins zoals hieronder (er kan er eventueel nog 1 bijkomen)... wat ik me afvroeg is het volgende:
Ik las in de MySQL handleiding dat JOINS in MySQL sterk geoptimaliseerd zijn. SELECTS op zich zijn natuurlijk ook supersnel, maar ik vroeg me af wat er beter (lees: sneller) zou zijn; het gebruik van 1 grote query met een aardig aantal joins (zoals hieronder), of een aantal SELECTS (2 of 3) die net dezelfde gegevens ophalen (die je dan achteraf in een array combineert ofzo) ?
Of valt dat verschil te verwaarlozen denk je?
Alvast bedankt.
Ik las in de MySQL handleiding dat JOINS in MySQL sterk geoptimaliseerd zijn. SELECTS op zich zijn natuurlijk ook supersnel, maar ik vroeg me af wat er beter (lees: sneller) zou zijn; het gebruik van 1 grote query met een aardig aantal joins (zoals hieronder), of een aantal SELECTS (2 of 3) die net dezelfde gegevens ophalen (die je dan achteraf in een array combineert ofzo) ?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| SELECT c.clus_id, c.cluster_name, c.number_of_assignments, c.number_of_choices, s.sugg_id, s.value1, s.value2, s.value3, s.value4, s.max_students, ch.priority, UNIX_TIMESTAMP(ch.submit_date) AS submit_date, u.user_id, u.prenom, u.nom, a.user_id IS NOT NULL AS toekenning, ch.user_id
FROM `" . $tbl_cluster . "` c
INNER JOIN `" . $tbl_suggestion . "` s
ON c.clus_id = s .clus_id
LEFT JOIN `" . $tbl_choice . "` ch
ON s.sugg_id = ch.sugg_id
LEFT JOIN `" . $tbl_user . "` u
ON ch.user_id = u.user_id
LEFT JOIN `" . $tbl_assignment . "` a
ON a.sugg_id = ch.sugg_id
AND a.user_id = u.user_id
WHERE c.proc_id = '" . $_SESSION['procedureId'] . "'
" . $cluster_restriction . "
ORDER BY c.position, s.sugg_id, ch.priority, ch.submit_date, ch.user_id |
Of valt dat verschil te verwaarlozen denk je?
Alvast bedankt.
[ Voor 5% gewijzigd door Verwijderd op 04-05-2004 10:35 ]