У меня есть таблица базы данных с + 5M статические записи на месте. Простая структура: (начало int, завершение int, result int). Поэтому у меня есть определенный INT, и мне нужно найти соответствующий результат (int). В настоящее время таблица поиска находится в БД, но она должна находиться в памяти, скорее всего, в среде без доступа к базе данных.Быстрый поиск в памяти в диапазоне от + 5M записей таблицы
Мое решение должно выполнять эту логику без доступа к базе данных в памяти и сверхбыстро, поскольку мне нужно обрабатывать 1000 транзакций в секунду. Размер набора немного меньше 50 МБ, поэтому я мог бы перебросить все это в память и запустить поиск по нему, за этот пост: Doing a range lookup in C# - how to implement. Но я не знаю, как это будет работать в таком масштабе.
- Я предварительно загружаю этот стол «при запуске»? Это может занять некоторое время.
- Любой способ загрузить таблицу в некоторый .dat-файл и иметь суперэффективный просмотр во время выполнения?
Кстати, я на Azure, не уверен, что при использовании таблиц хранения помогает на ... поисках
«У меня есть таблица базы данных» .. «Но мое решение должно выполнять эту логику без доступа к базе данных» - так как эти данные попадают в память?Вы читаете базу данных, не так ли? –
Загрузка всего этого в память будет самой быстрой. Все зависит от изменения данных. Затем становится немного сложнее управлять сохранением базы данных, но если она не меняется, а затем просто кэшировать в память –
@Keith: не обязательно. База данных имеет индексы .... –