@evgen9586
Backend-dev. Лублу Enterprise и не люблю понты)

Можно ли как то ускорить копирование более 13 тысяч записей из одной БД в другую на yii2?

Смысл в том, чтобы получать данные из базы оракл и переносить из в базу мускл. Ну и фамилия иногда может меняться , поэтому это перезаписывать. Прямого инструмента для импорта я не нашёл, поэтому встроил в yii. Получилось что-то такое. Но выполняет импорт php минут 5-7 ( 26 тысяч запросов) . РЕально ли ускорить иморт или 5-7 минут это нормальная скорость для 26 тысяч запросов? ( В будущем кол-во запросов вырастет до 30к)

Код, не кот
public function actionImport()
    {
        $oracleUsers = TUSER::find()->all();


        foreach ($oracleUsers as $oracleUser)
        {
            if (Users::findOne(['login' => $oracleUser->CEH_K.$oracleUser->TAB_N, 'password' => $oracleUser->NUMBPROPUSK]))
            {
                $updatemysqlUsers = Users::findOne(['login' => $oracleUser->CEH_K.$oracleUser->TAB_N, 'password' => $oracleUser->NUMBPROPUSK]);
                $updatemysqlUsers->fio = $oracleUser->FIO;
                $updatemysqlUsers->save();
            }
            else
            {
               $mysqlUsers = new Users();
               $mysqlUsers->fio = $oracleUser->FIO;
               $mysqlUsers->login = $oracleUser->CEH_K.$oracleUser->TAB_N;
               $mysqlUsers->password = $oracleUser->NUMBPROPUSK;
               $mysqlUsers->save();
            }

        }


        return $this->render('import');
    }
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ar2rsoft
PHP-developer
Не использовать AR, вставлять/обновлять пачками
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы