在php中插入mysql或比较数组哪个更快?

lo8azlld  于 2021-06-23  发布在  Mysql
关注(0)|答案(0)|浏览(286)

我有一个php脚本,它获取一个json(包含100条或更多记录),我必须将数据插入mysql数据库。
每次执行插入时,我们都会删除数据库中的所有记录。
可能在很多情况下,json附带的数据与数据库中已有的数据相同,如果数据完全相同,我不想执行insert。因此,我编写了一个脚本,将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(零),则退出脚本
重要提示:脚本将在10台不同的机器上每5分钟查阅一次。
所以。。。对于cpu使用率和数据库,哪个路径更快更好?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题