в цикле получаются данные.примерно 100 строк с данными.каждую строку нужно сверить с базой данных, и если её нет, то добавить данные в бд.
Правильно я понимаю: нужно в каждую итерацию цикла делать 2 запроса в бд? или есть более простой способ?
1. livote - 05 Февраля, 2015 - 18:28:21 - перейти к сообщению
2. Мелкий - 05 Февраля, 2015 - 18:49:22 - перейти к сообщению
Используйте подход с пакетной обработкой.
Например, предварительно вычитать имеющиеся в таблице значения и затем сравнивать локально.
Или записывать во временную таблицу, затем одним запросом переписать строки.
Возможно, хватит банального insert on duplicate key update или insert ignore
Например, предварительно вычитать имеющиеся в таблице значения и затем сравнивать локально.
Или записывать во временную таблицу, затем одним запросом переписать строки.
Возможно, хватит банального insert on duplicate key update или insert ignore
3. livote - 05 Февраля, 2015 - 19:13:53 - перейти к сообщению
Мелкий пишет:
Используйте подход с пакетной обработкой.
Например, предварительно вычитать имеющиеся в таблице значения и затем сравнивать локально.
Или записывать во временную таблицу, затем одним запросом переписать строки.
Возможно, хватит банального insert on duplicate key update или insert ignore
Например, предварительно вычитать имеющиеся в таблице значения и затем сравнивать локально.
Или записывать во временную таблицу, затем одним запросом переписать строки.
Возможно, хватит банального insert on duplicate key update или insert ignore
заместо "INSERT INTO..." прописать "INSERT IGNORE INTO..." и совпадений не будет?
и как я понимаю для поля нужно будет прописать "UNIQUE"?
4. Ch_chov - 05 Февраля, 2015 - 20:06:00 - перейти к сообщению
livote пишет:
и как я понимаю для поля нужно будет прописать "UNIQUE"?
да