Задать вопрос
  • Как правильно импортировать много данных из json в mysql?

    @Artikul2 Автор вопроса
    у тебя правильно организована транзакция, одна на все инсерты

    о, нет. Этот пример еще не реализован. В рабочем варианте так как описано в посте.
    Я хочу попробовать переделать по своему примеру, но если говорите, что правильно организовано, то хорошо.

    Я не знаю только:
    foreach($Data as $items)
    {
    $query = "INSERT INTO employee (ssn,name,phone) values ($items['ssn'],$items['name'],$items['phone'])";
    
    };

    мне кажется тут ошибка в написании кода,
    надо в одну переменную все собрать, а так она у меня переписывается?!
  • Как правильно импортировать много данных из json в mysql?

    @Artikul2 Автор вопроса
    rPman,
    на каждый запрос на внешний сервер я получаю, допустим 1000 записей, где каждая запись имеет 20 значений.
    этот json я превращаю в массив и прогоняю в цикле два запроса
    1. Проверяю есть ли такая запись (поиск в базе)
    2. Если есть, то обновляю, если нет, то добавляю
    В этом и есть корень тормозов.
    Но по сути, каждый момент можно оптимизировать, если применить правильный подход.
    На использование транзакции подтолкнул этот пост
    https://qna.habr.com/q/82104
    Но в силу того, что я не работал никогда с mysql напрямую я не знаю как применить данный метод, мне бы пример.

    Пока прикидываю такой пример:
    mysql_connect(....) ;
    mysql_select_db("mytable");
    $Data = file_get_contents("data.json");
    $object = json_decode($Data);
    
    
    /* Начало транзакции */
    $mysqli->begin_transaction();
    
    try {
    
    foreach($Data as $items)
    {
    $query = "INSERT INTO employee (ssn,name,phone) values ($items['ssn'],$items['name'],$items['phone'])";
    
    };
    
        $mysqli->commit();
    } catch (mysqli_sql_exception $exception) {
        $mysqli->rollback();
    
        throw $exception;
    }

    Т.е. использование в циклах обращений к базе и есть тормоз.