Подтвердить что ты не робот

Зачем кому-то нужна база данных в памяти?

Я читал, что несколько баз данных могут использоваться в памяти, но не могут думать о причине, почему кто-то захочет использовать эту функцию. Я всегда использую базу данных для сохранения кэшей данных и памяти для быстрого доступа.

4b9b3361

Ответ 1

Кэш также является своего рода базой данных, например файловой системой. "Кэш памяти" - это просто конкретное приложение базы данных в памяти, а некоторые базы данных в памяти специализированы как кэши памяти.

Другие использования баз данных в памяти уже включены в другие ответы, но позвольте мне также перечислить использование:

  • Кэш памяти. Обычно используется система базы данных, специализирующаяся на этом использовании (и, вероятно, известная как "кеш памяти", а не "база данных" ).
  • Тестирование кода, связанного с базой данных. В этом случае часто используется режим "в памяти" какой-либо общей системы баз данных, но также можно использовать выделенную базу данных "in-memory" для замены другой базы данных "на диске" для более быстрого тестирования.
  • Сложная обработка данных. Часто используются базы данных SQL в памяти. SQL - отличный инструмент для обработки данных, и иногда нет необходимости записывать данные на диске при вычислении конечного результата.
  • Сохранение состояния переходного режима. Есть приложение, которое должно хранить свое состояние в какой-то базе данных, но не нужно настаивать на перезапуске приложения. Подумайте о каком-то диспетчере процессов - он должен отслеживать выполнение подпроцессов, но эти данные действительны только при запуске приложения и подпроцессов.

Ответ 2

Обычный пример использования - запуск тестов unit/integration.

Вы не заботитесь о сохраняющихся данных между каждым тестовым прогоном, и вы хотите, чтобы тесты выполнялись как можно быстрее (чтобы побуждать людей часто делать это). Хостинг базы данных в процессе дает вам очень быстрый доступ к данным.

Ответ 3

Имеется ли в вашем кэше памяти поддержка SQL?

Как вы считаете, что база данных в памяти является действительно умным кешем?

Это оставляет вопросы о том, как заполняется база данных в памяти и насколько она обновляется, а согласованность сохраняется в нескольких экземплярах.

Ответ 4

Поиск чего-то из 100000 элементов медленный, если вы не используете трюки, такие как индексы. Эти трюки уже реализованы в движке базы данных (будь то постоянный или встроенный).

База данных в памяти может предложить более эффективную функцию поиска, чем то, что вы могли бы быстро реализовать самостоятельно над самозаписываемыми структурами.

Ответ 5

Базы данных в памяти примерно на порядок быстрее, чем традиционные СУРБД для запросов общего назначения (чтение). Большинство из них имеют поддержку диска, обеспечивающую ту же самую согласованность, что и обычная RDBMS, - только захват всего набора данных должен вписываться в ОЗУ.

Основная идея - хранилище с поддержкой диска имеет огромные штрафы за произвольный доступ, которые не относятся к DRAM. Данные могут быть индексированы/организованы оптимизированным способом с произвольным доступом, что не представляется возможным с помощью традиционных схем кэширования данных РСУБД.

Ответ 6

Приложения, требующие ответа в реальном времени, хотели бы использовать базу данных в памяти, возможно, приложение для управления самолетом, заводы, где критическое время реакции

Ответ 7

База данных в памяти также полезна в игровом программировании. Вы можете хранить данные в базе данных памяти, которая намного быстрее, чем постоянные базы данных.

Ответ 8

Они используются как расширенная структура данных для хранения, запроса и изменения данных времени выполнения.

Ответ 9

Возможно, вам понадобится база данных, если несколько разных приложений получат доступ к набору данных. База данных имеет согласованный интерфейс для доступа/изменения данных, которые не будут иметь ваша хэш-таблица (или что-то еще, что вы используете).

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

Ответ 10

База данных в памяти лучше, чем выполнение кэширования базы данных. Кэширование базы данных работает подобно базам данных в памяти, когда дело доходит до операций READ.

С другой стороны, когда дело доходит до операций WRITE, базы данных в памяти быстрее по сравнению с кэшами базы данных, где данные сохраняются на диске (что приводит к издержкам ввода-вывода).

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

Ответ 11

Учитывая их скорость и снижающуюся цену ОЗУ, вероятно, что в будущем база данных в памяти станет доминирующей технологией. Уже есть некоторые, которые разработали сложные функции, такие как SQL-запросы, вторичные индексы и двигатели для обработки наборов данных, больших, чем ОЗУ.