Виртуальная база данных в памяти - PullRequest
3 голосов
/ 19 февраля 2010

Представьте себе следующее:

У меня есть таблица из 57 000 элементов, которые я регулярно использую в своем приложении для определения таких вещей, как таргетирование групп и т. Д.

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

После некоторого поиска, самое близкое, что я мог найти, это база данных в памяти

спасибо, - Тео

Ответы [ 4 ]

1 голос
/ 19 февраля 2010

SQLite поддерживает таблицы в памяти.

1 голос
/ 19 февраля 2010

Для 57 000 элементов, с которыми вы будете запрашивать (и хотите, чтобы они были немедленно доступны), я бы не рекомендовал использовать простое кэширование.Для такого количества элементов я бы либо порекомендовал распределенный кэш памяти (даже если это всего лишь один компьютер), такой как Memcache, Velocity и т. Д., Либо использовал бы свою первоначальную идею использования базы данных в памяти.используйте любой полноценный ORM, такой как NHibernate, вы можете реализовать его для использования клиентов для инструментов распределенного кэширования практически без работы.Многие из основных клиентов имеют реализации NHibernate для них, в том числе Memcache, Velocity и некоторые другие.Это может быть лучшим решением, поскольку вы можете использовать его там, где используются только кэшируемые данные, которые он действительно использует, а не все данные, которые могут нужны.

0 голосов
/ 19 февраля 2010

Если вам нужно только найти строки, использующие один и тот же ключ все время, простой Dictionary<Key, Value> вполне может быть всем, что вам нужно.Для меня 57 000 наименований звучат не так уж и много, если в каждой строке не содержится огромное количество данных.Однако, если вам нужен поиск по разным столбцам, наиболее вероятным вариантом будет использование базы данных в памяти.

0 голосов
/ 19 февраля 2010

Читать на Кэширование

Звучит так, как будто это данные уровня приложения, а не уровня пользователя, поэтому вы должны изучить " Кэширование данных приложения "

Вот некоторые образцы кэшируемых таблиц данных

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