что быстрее INSERT INTO Mysql или Compare-Arrays в PHP?

У меня есть сценарий PHP, который получает Json (с 100 или более записей), и я должен вставить данные в Mysql DB.

Каждый раз, когда мы выполняем вставку, мы в основном удаляем все записи в БД.

Возможно, во многих случаях Json приходил с теми же данными, которые уже есть в базе данных, и я не хочу выполнять вставку, если данные точно такие же. Итак, я пришел с этим сценарием, который сравнивает Json с данными в БД:

PHP:

$j2 = json_decode($getJson, true); //decode the Json

$resultD = mysqli_query($link,"SELECT CONCAT(cod, '-', nro)  as CodNro from sales WHERE id=".$id);

if ( mysqli_num_rows($result) > 0) {

while($r = mysqli_fetch_array($result)) {
$rows[] = $r[0]; //store the old info into an Array
}


foreach ( $j2['data'] as $item  ) {
$CodNro[] = $item['cod'] . '-' . $item['nro']; //store the New info into an Array
}


function leo_array_diff($a, $b) { // function that compare the arrays
$map = array();
foreach($a as $val) $map[$val] = 1;
foreach($b as $val) unset($map[$val]);
return array_keys($map);
}

$result1= count(leo_array_diff($CodNro, $rows)); // check the NewArray vs OldArray
$result2= count(leo_array_diff($rows,$CodNro));  // check the OldArray vs NewArray


if($result1==0 && $result2==0) {
//exit cause there's nothing to insert or update
exit();
} else {
// run mysql insert here
}

}

В конце я подсчитываю элементы в каждом массиве и:

  • Если один из них> 0, я иду с Удалить, а затем вставить
  • Если они оба 0 (ноль) y Выйдите из скрипта

ВАЖНО: Сценарий будет проверяться каждые 5 минут на 10 разных машинах.

Итак … какой путь быстрее и лучше для использования процессора и БД?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector