Здравствуйте! Скажите, можно ли как-то код оптимизировать. Его цель сверить 2 массива и вывести значения который есть в первом ($dada), но нет во втором ($base) . Первый массив я получаю из TSV файла (45000 записей) В tsv идут значаения и я преобразую их в массив массивов. Второй массив я вытягиваю из sql - базы. Но чтобы не тянуть все поля, так как для сверки нужно только одно, беру ток ID. Время проверки на дубликаты при 20000 записей в базе составило почти 11 минут. А там еще и записывать в базу потом надо. В результе я записал 45000 в базу. Но у менять есть еще файлы ( по 20-40 тыс.записей) который нужно сверять и записывать, если вдруг в базе чего-то нет. Повторю, что 10 минут это только время когда он сверяет. Или это нормальное время? Просто впервые работаю с с таким объемом.
$data = []; //массив котрый я получаю из файла
$base = []; //массив который я беру sql запросом из базы. Содержит в себе значение только одного поля - ID
$maxBase = count($base);
$start = microtime(true);
foreach($data as $dates) {
$i = 0;
foreach ($base as $bases) {
if($dates['ID'] == $bases['ID'] ) {
break;
}
$i++;
if($i == $maxBase) {
$itog[] = $dates;
}
}
}
$finish = microtime(true);
$time = $finish - $start