Множество существующих проверочных запросов к MySQL против таблицы загрузки и сравнения в php - PullRequest
0 голосов
/ 14 апреля 2020

Задача состоит в том, чтобы найти разницу между двумя списками элементов.

Первый список находится в таблице MySQL в поле indexed integer. Таким образом, мы можем легко получить это с SELECT myfield FROM mytable WHERE otherfield = mycondition. Давайте представим, что результат запроса составляет около 5000 строк.

Второй список находится в моем скрипте PHP, я только что загрузил его из Интернета. Пусть это будет 2000 строк .

Большинство элементов списка дублированы и не должны быть вставлены в базу данных.

Способ 1: выбрать 5000 строк из MySQL, сравните его с вторым списком , используя функцию array_diff PHP, и выполните массовый запрос INSERT (field1,field2,field3) VALUES (1,2,3),(2,3,4),(3,4,5)....;. Таким образом, у нас меньше MySQL запросов, но они достаточно тяжелые.

Способ 2: сделать foreach l oop для моего второго списка и проверить, существует ли каждый ключ в MySQL и вставьте если нет.

Вопрос в том, какой способ является более правильным и дешевым для сервера? Я спрашиваю, потому что процесс сравнения начинается каждые 30 минут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...