У меня очень большая таблица в базе данных, в таблице есть столбец «unique_code_string», эта таблица содержит почти 100 000 000 записей.
Каждые 2 минуты я получаю 100 000 строк кода, они находятся вмассив, и они уникальны друг для друга.Мне нужно вставить их в большой стол, если они все "хорошие".Значение «хорошо» таково: все 100 000 кодов в массиве никогда не встречаются в большой таблице базы данных.
Если в большой таблице базы данных встречается один или несколько кодов, весь массив не будет использоваться вообще,это означает, что никакие коды в массиве не будут вставлены в большую таблицу.
В настоящее время я использую этот способ: сначала я делаю цикл и проверяю каждый код в массиве, чтобы увидеть, есть ли уже тот же код в базе данныхбольшой столВо-вторых, если весь код «новый», то я делаю настоящую вставку.Но этот путь очень медленный, я должен закончить все в течение 2 минут.
Я думаю о других способах:
Присоединение 100 000 кода в SQL "впункт ", каждый код имеет длину 32, я думаю, что ни одна база данных не примет эту длину 32 * 100 000" в предложении ".
Использовать транзакцию базы данных, я все равно принудительно вставляю коды, если произойдет ошибка, откат транзакции.Это может вызвать проблемы с производительностью.
Использовать временную таблицу базы данных, я плохо умею писать запросы SQL, приведите пример, если эта идея может сработать.
Теперь, какие-нибудь эксперты могут дать мне какой-нибудь совет или некоторые решения?
Я не говорящий по-английски, надеюсь, вы видите проблему, с которой я сталкиваюсь.
Большое спасибо.