Я считал, что несколько баз данных могут использоваться в оперативной памяти, но не могут думать о причине, почему кто-то хотел бы использовать эту функцию. Я всегда использую базу данных для сохранения данных и кэшей памяти для быстрого доступа.
Кэш - это тоже своего рода база данных, как и файловая система. «Кэш памяти» - это просто специальное приложение базы данных в памяти, а некоторые базы данных в памяти специализируются как кеши памяти.
Другие варианты использования баз данных в памяти уже были включены в другие ответы, но позвольте мне также перечислить варианты использования:
Типичным вариантом использования является запуск модульных / интеграционных тестов.
Вы действительно не заботитесь о сохранении данных между каждым запуском теста, и вы хотите, чтобы тесты выполнялись как можно быстрее (чтобы побудить людей делать их чаще). Размещение базы данных в процессе дает вам очень быстрый доступ к данным.
Они используются в качестве расширенной структуры данных для хранения, запроса и изменения данных времени выполнения.
Поддерживает ли ваш кеш-память SQL?
Как насчет того, чтобы рассматривать базу данных в памяти как действительно умный кеш?
Это оставляет вопросы о том, как заполняется база данных в памяти, и как обновляются, и как сохраняется согласованность в нескольких экземплярах.
Поиск чего-то среди 100000 элементов будет медленным, если не использовать такие уловки, как индексы. Эти трюки уже реализованы в механизме базы данных (будь то постоянная база данных или база данных в памяти).
База данных in-memory может предложить более эффективную функцию поиска, чем та, которую вы можете быстро реализовать самостоятельно над самописными структурами.
Вам может понадобиться база данных, если к набору данных будут обращаться несколько различных приложений. База данных имеет согласованный интерфейс для доступа/изменения данных, чего не будет у вашей хэш-таблицы (или любой другой, которую вы используете).
Если с данными работает одна программа, то разумно просто использовать структуру данных на любом языке, который вы используете.
Приложения, требующие отклика в реальном времени, хотели бы использовать базу данных в памяти, возможно, приложение для управления самолетами, предприятиями, где время отклика критично
Базы данных в памяти примерно на порядок быстрее традиционных РСУБД для запросов общего назначения (на стороне чтения). Большинство из них хранятся на дисках, обеспечивая ту же последовательность, что и обычные РСУБД - только весь набор данных должен помещаться в оперативной памяти.
Основная идея заключается в том, что дисковые хранилища имеют огромные штрафы за случайный доступ, что не относится к DRAM. Данные могут быть проиндексированы/организованы оптимизированным для случайного доступа способом, не реализуемым с помощью традиционных схем кэширования данных РСУБД.