@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?
  • Вопрос задан
  • 251 просмотр
Пригласить эксперта
Ответы на вопрос 1
magalex
@magalex
Архитектор распределённых систем управления
Делаете составной ключ из полей `article` и `description` и далее есть два пути:
13.2.5.3 INSERT ... ON DUPLICATE KEY UPDATE или 13.2.8 REPLACE
Оба варианта выполняют вставку, если для вставляемых данных ключ не существует или выполняют замену, если ключ существует.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект