зная, что какая-то запись находится в базе данных - PullRequest
0 голосов
/ 06 января 2011

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

У меня есть какое-то быстрое приложение, и я хочу уменьшить количество вызовов к базе данных.

У меня там около 35.000 записей в таблице.

Я думал, что у меня есть фильтр Блума с какой-то хэш-функцией.

Это хорошая идея или у вас есть другие идеи, что делать здесь?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 06 января 2011

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

Если вам действительно нужен локальный кэш, вы можете использовать HashSet<T> для хранения ключей ваших записей. Используйте hashSet.Contains, чтобы увидеть, присутствует ли ключ примерно за O (1) раз.

Поскольку вы уже внедрили кеш своей базы данных, вы также можете рассмотреть возможность хранения данных из таблицы локально, а не только ключи. Для этого вы можете использовать Dictionary<TKey, TValue>.

0 голосов
/ 06 января 2011

Как насчет просто кэшировать весь набор данных в вашей локальной памяти.

И выбирать строки из локальной памяти

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