Есть код, который проверяет новые данные и при необходимости записывает их в базу. В базу нужно писать только новые данные, которых раньше не было. Сейчас это выглядит так: Получаю данные и складываю их в массив. Далее, я обращаюсь к базе Select записи, где есть такие значения, если нет, значений, то добавляю в базу строчку из массива. Всё это гоняю в цикле еще к тому же. Мне думается, я делаю всё неправильно. Укажите правильный путь пожалуйста.
В исходных данных есть что-то уникальное, благодаря чему ты находишь записи в таблице. Если этот признак еще не объявлен как primary key или unique key, сделай это. И просто делай insert, без предварительного select. Лишнего не запишется! Как вариант, можно делать INSERT ... ON DUPLICATE KEY UPDATE
дубликаты уже очищены по unique key. Прикол в том, что я могу понять есть ли такой товар в базе только если у него совпадают несколько полей, например цена и название могут быть не уникальными, но вот если совпало и то и другое сразу, то скорее всего имеем дело с дублем. Возникла идея сделать хеш по нескольким полям и сравнивать его, но не думаю, что это сильно упростит жизнь.
Хотя да, если сделать колонку с ключами, их сделать уникальными и сразу писать, то наверное я существенно сокращу манипуляции Спасибо за наводку на мысль.