Какую структуру данных лучше всего использовать для этого сценария? - PullRequest
0 голосов
/ 17 марта 2011

В настоящее время я выполняю миграцию данных и выполняю одну задачу - сопоставление первичных ключей из старой БД с новыми для каждой таблицы. Во всей миграции, вероятно, около 40 таблиц, и, поскольку я перемещаю только некоторые данные, я хочу предотвратить создание дублирующих новых записей в новой БД.

Поэтому я хочу хранить несколько наборов пар целых чисел (oldPK и newPK). Каждая коллекция представляет таблицу, а каждая пара представляет строку, через которую я уже перенесен. Я часто собираюсь искать на oldPK, чтобы узнать, перенес ли я уже определенную строку в таблице.

Я не уверен относительно того, сколько пар целых чисел у меня может быть, хотя я уверен, что оно не будет превышать количество строк в таблице старой БД, которое обычно составляет от 100 до примерно 5000. (Я мог бы развлекать идея разных коллекций, имеющих разные структуры данных)

Кроме того, я не буду заполнять список сразу, вероятно, это произойдет по одной целой паре за раз, обычно, когда я записываю эту запись в новую БД.

Я пытался использовать List - T, являющийся классом с целыми числами A и B, но, похоже, он замедляется, поскольку коллекция становится очень большой.

Есть ли лучшая структура данных, которую я мог бы использовать для этого сценария?

ЗАКЛЮЧЕНИЕ

хорошо, поэтому я только что провел тест со всеми различными типами данных (например, хэш-набор, список, словарь, SortedDict, SortedSet, SortedList, Hashtables).

Hashtable вышел из рук быстрее всех. Мы говорим о вычислениях, которые занимают другие структуры данных 5-10 секунд, это займет меньше 0,1 секунды!

1 Ответ

1 голос
/ 17 марта 2011

Используйте хеш-таблицу .Это очень быстрый поиск, чтобы увидеть, есть ли в нем определенный ключ - например, ваш старый идентификатор.Он не будет заметно замедляться, даже если в нем есть миллиарды строк.

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