Как правильнее и быстрее всего обновить данные в таблице 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?
Делаете составной ключ из полей `article` и `description` и далее есть два пути: 13.2.5.3 INSERT ... ON DUPLICATE KEY UPDATE или 13.2.8 REPLACE
Оба варианта выполняют вставку, если для вставляемых данных ключ не существует или выполняют замену, если ключ существует.