Имеется файл примерно на 700 000 записей, мне необходимо периодически его проверять, если есть изменения то делаю update в базу,если нет то записываю в базу. Нужно как то ускорить этот процесс. и я не понимаю как сохранять это дело в моем случаи. уперся вот на этом моменте. не судите строго я новичок. Надеюсь код лучше объяснит.
DB::table('resources')->select('hash')->orderBy('id')->chunk(50000,
function ($resources) use ($file, $updatedDate) {
$lineCount = 1;
echo 1 . '<>';
while (!feof($file)) {
$line = iconv('cp1251', 'utf-8', fgets($file));
$csv = str_getcsv($line, ';');
if (count($csv) === 6) {
$ipPool = explode('|', $csv[0]);
foreach ($ipPool as $ip) {
$date = new \DateTime($csv[5]);
$hash = md5($csv[1] . $csv[2]);
foreach ($resources as $resource) {
if ($hash === $resource->hash) {
DB::table('resources')->where('hash', $hash)->update([
'version_date' => $updatedDate,
]);
echo $lineCount++ . "<br>" ;
}
}
}
}
$lineCount++;
}
});
Если весь вопрос в том что страница зависает на 1 минуту, можно сделать это асинхронно через очереди. Либо используй две таблицы в базе данных, грузи туда целиком файл, в одной таблице предыдущая версия в другой текущая, и проверяй запросом. В итоге будет меньше запросов, и все вычисления на уровне БД, должен быть приличный прирост.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня не получается сделать авторизацию на сайте! Регистрирует у меня все хорошо, а вот войти на сайт не хочет! Я пользуюсь функцией md5() и у меня...
Помогите как правильно организовать структуру БД интернет магазина где у товаров есть разные свойства и категорииЧтобы было легче для фильтрации...
собственно, тут такой вопрос Есть игра(обычная текстовая html,css,php +mysql)