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 ]