Вообщем есть массив 10 записей, есть таблица 10000 записей. Необходимо определить каких записей в массиве нет в таблице и их потом вставить. До этого у меня было так
$select_all_news = DB::select("select * from news WHERE author='автор'");
То есть по сути вытаскивал пол таблицы, а далее уже двумя циклами for и foreach прокручивал, сравнивая массивы. Таким образом формировался массив уникальных новостей. (один запрос к бд)
сейчас переделал так
for ($x=0; $x<count($all_news['url']); $x++)
{
if(!DB::table('news')->where('source',$all_news['url'][$x])->where('author',$author)->first())
{
$unic_news[$x]['url']=$all_news['url'][$x];
$unic_news[$x]['preview_img']=$all_news['preview_img'][$x];
$unic_news[$x]['title']=$all_news['title'][$x];
$unic_news[$x]['small_description']=$all_news['small_description'][$x];
}
}
В данном случае получается 10 запросов, так как идет сверка именно по каждой записи.
Какой вариант более правильный и почему?