Я читал, что несколько баз данных могут использоваться в памяти, но не могут думать о причине, почему кто-то захочет использовать эту функцию. Я всегда использую базу данных для сохранения кэшей данных и памяти для быстрого доступа.
Зачем кому-то нужна база данных в памяти?
Ответ 1
Кэш также является своего рода базой данных, например файловой системой. "Кэш памяти" - это просто конкретное приложение базы данных в памяти, а некоторые базы данных в памяти специализированы как кэши памяти.
Другие использования баз данных в памяти уже включены в другие ответы, но позвольте мне также перечислить использование:
- Кэш памяти. Обычно используется система базы данных, специализирующаяся на этом использовании (и, вероятно, известная как "кеш памяти", а не "база данных" ).
- Тестирование кода, связанного с базой данных. В этом случае часто используется режим "в памяти" какой-либо общей системы баз данных, но также можно использовать выделенную базу данных "in-memory" для замены другой базы данных "на диске" для более быстрого тестирования.
- Сложная обработка данных. Часто используются базы данных SQL в памяти. SQL - отличный инструмент для обработки данных, и иногда нет необходимости записывать данные на диске при вычислении конечного результата.
- Сохранение состояния переходного режима. Есть приложение, которое должно хранить свое состояние в какой-то базе данных, но не нужно настаивать на перезапуске приложения. Подумайте о каком-то диспетчере процессов - он должен отслеживать выполнение подпроцессов, но эти данные действительны только при запуске приложения и подпроцессов.
Ответ 2
Обычный пример использования - запуск тестов unit/integration.
Вы не заботитесь о сохраняющихся данных между каждым тестовым прогоном, и вы хотите, чтобы тесты выполнялись как можно быстрее (чтобы побуждать людей часто делать это). Хостинг базы данных в процессе дает вам очень быстрый доступ к данным.
Ответ 3
Имеется ли в вашем кэше памяти поддержка SQL?
Как вы считаете, что база данных в памяти является действительно умным кешем?
Это оставляет вопросы о том, как заполняется база данных в памяти и насколько она обновляется, а согласованность сохраняется в нескольких экземплярах.
Ответ 4
Поиск чего-то из 100000 элементов медленный, если вы не используете трюки, такие как индексы. Эти трюки уже реализованы в движке базы данных (будь то постоянный или встроенный).
База данных в памяти может предложить более эффективную функцию поиска, чем то, что вы могли бы быстро реализовать самостоятельно над самозаписываемыми структурами.
Ответ 5
Базы данных в памяти примерно на порядок быстрее, чем традиционные СУРБД для запросов общего назначения (чтение). Большинство из них имеют поддержку диска, обеспечивающую ту же самую согласованность, что и обычная RDBMS, - только захват всего набора данных должен вписываться в ОЗУ.
Основная идея - хранилище с поддержкой диска имеет огромные штрафы за произвольный доступ, которые не относятся к DRAM. Данные могут быть индексированы/организованы оптимизированным способом с произвольным доступом, что не представляется возможным с помощью традиционных схем кэширования данных РСУБД.
Ответ 6
Приложения, требующие ответа в реальном времени, хотели бы использовать базу данных в памяти, возможно, приложение для управления самолетом, заводы, где критическое время реакции
Ответ 7
База данных в памяти также полезна в игровом программировании. Вы можете хранить данные в базе данных памяти, которая намного быстрее, чем постоянные базы данных.
Ответ 8
Они используются как расширенная структура данных для хранения, запроса и изменения данных времени выполнения.
Ответ 9
Возможно, вам понадобится база данных, если несколько разных приложений получат доступ к набору данных. База данных имеет согласованный интерфейс для доступа/изменения данных, которые не будут иметь ваша хэш-таблица (или что-то еще, что вы используете).
Если одна программа имеет дело с данными, тогда разумно просто использовать структуру данных на любом языке, который вы используете.
Ответ 10
База данных в памяти лучше, чем выполнение кэширования базы данных. Кэширование базы данных работает подобно базам данных в памяти, когда дело доходит до операций READ.
С другой стороны, когда дело доходит до операций WRITE, базы данных в памяти быстрее по сравнению с кэшами базы данных, где данные сохраняются на диске (что приводит к издержкам ввода-вывода).
Кроме того, при кэшировании базы данных вы можете завершить пропуски кэша, но при использовании баз данных в памяти вы никогда не столкнетесь с промахами кеша.
Ответ 11
Учитывая их скорость и снижающуюся цену ОЗУ, вероятно, что в будущем база данных в памяти станет доминирующей технологией. Уже есть некоторые, которые разработали сложные функции, такие как SQL-запросы, вторичные индексы и двигатели для обработки наборов данных, больших, чем ОЗУ.