Из любопытства, какой из этих сегментов кода будет иметь более быстрое время выполнения при реализации в массовом масштабе?Производительность выборки элементов БД индивидуально против петли с помощью php
Предположим, у нас есть участники таблицы, и мы хотим получить их фотографии.
Метод 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;
}
ИЛИ
Метод 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');
Метод 1 приведет меньше запросов будучи бегал, но требует больше PHP работы.
Способ № 3 - использовать JOIN в одном запросе; но определенно не # 2, потому что есть накладные расходы на запрос, и чем больше запросов вы выполняете, тем медленнее это будет –