Aus Neugier, welche dieser Codeabschnitte hätten die schnellere Leistungszeit, wenn sie in großem Umfang implementiert würden?Leistung des Abrufs von DB-Elementen einzeln im Vergleich zu einer Schleife mit PHP
Sagen wir, wir haben einen Tisch Mitglieder und wir wollen ihre Fotos holen.
Methode 1
$members = $db->query('SELECT * FROM members ORDER BY id ASC');
foreach($members as $m)
$memberIDs[] = $m['id'];
$photos = $db->query('SELECT * FROM photos WHERE member IN'.join(',', $memberIDs).' ORDER BY id ASC');
foreach($photos as $p) {
// multi_arr_search(search_val, search_column, search_array) returns parent key in multi dimensional array
$memberArrayKey = multi_arr_search($p['member'], 'id', $members);
$members[$memberArrayKey]['photos'][] = $p;
}
ODER
Methode 2
$members = $db->query('SELECT * FROM members ORDER BY id ASC');
foreach($members as $k=>$m)
$members[$k]['photos'] = $db->query('SELECT * FROM photos WHERE member='.$m['id'].' ORDER BY id ASC');
Methode 1 in weniger Anfragen zu sein RAN führen würde, aber mehr PHP Arbeit erfordert.
Methode # 3 - Verwenden Sie einen JOIN in einer einzigen Abfrage; aber definitiv nicht # 2, weil es pro Abfrage einen Overhead gibt, und je mehr Abfragen ausgeführt werden, desto langsamer wird es sein –