Задать вопрос
@cbv

Как правильнее и быстрее всего обновить данные в таблице MySQL из массива PHP?

Существует таблица в БД MySQL (
`id` int(11) NOT NULL AUTO_INCREMENT,
`article` varchar(100) DEFAULT NULL,
`description` varchar(3000) DEFAULT NULL,
`date` date DEFAULT NULL,
10 информационных полей,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
В данной таблице несколько десятков тысяч записей.

Есть массив PHP с такими же полями, в котором несколько тысяч записей.
Если в в массиве и таблице совпадают два поля `article` и `description` - необходимо обновить из массива остальные поля в БД и вставить текущую дату, если поля не совпадают - необходимо вставить в массив новую запись с текущей датой.
Прошу обратить внимание на размер поля `description`. Подавляющее большинство записей не более 100 символов, однако существуют и такие длинные.

Вопрос, как максимально быстро можно обновить данные в таблице MySQL?
  • Вопрос задан
  • 281 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
magalex
@magalex
Архитектор распределённых систем управления
Делаете составной ключ из полей `article` и `description` и далее есть два пути:
13.2.5.3 INSERT ... ON DUPLICATE KEY UPDATE или 13.2.8 REPLACE
Оба варианта выполняют вставку, если для вставляемых данных ключ не существует или выполняют замену, если ключ существует.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы