У меня есть два больших списка (может быть сто миллионов элементов), источником каждого списка может быть либо таблица базы данных, либо простой файл.оба списка имеют сопоставимые размеры, оба не отсортированы.Мне нужно найти разницу между ними.Итак, у меня есть 3 сценария:1. List1 - это таблица базы данных (предположим, что в каждой строке просто есть один элемент (ключ), который является строкой), List2 - это большой файл.2. Оба списка взяты из таблиц по 2 дБ.3. оба списка из двух файлов.
в случае 2 я планирую использовать:
select a.item from MyTable a where a.item not in (select b.item form MyTable b)
это явно неэффективно, есть ли лучший способ?
Другой подход:Я планирую отсортировать каждый список, а затем пройтись по ним обоим, чтобы найти разницу.Если список из файла, я должен сначала прочитать его в таблицу базы данных, а затем использовать сортировку базы данных для вывода списка.Означает ли сложность времени выполнения O (nlogn) в сортировке БД?
любой подход - это боль, и кажется, что он будет очень медленным, если в списке участвуют сотни миллионов элементов.какие-либо предложения?