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

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

24
задан R0MANARMY 2 June 2010 в 05:20
поделиться

8 ответов

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

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

  1. Кэш памяти. Обычно будет использоваться система баз данных, специализированная для этого использования (и, вероятно, известная как «кэш памяти», а не «база данных»).
  2. Тестирование кода, связанного с базой данных. В этом случае часто будет использоваться режим «в памяти» некоторой общей системы баз данных, но также может использоваться выделенная база данных «в памяти» для замены другой базы данных «на диске» для более быстрого тестирования.
  3. Сложные манипуляции с данными. Таким образом часто используются базы данных SQL в памяти. SQL - отличный инструмент для обработки данных, и иногда нет необходимости записывать данные на диск при вычислении окончательного результата.
  4. Сохранение переходного состояния выполнения. Есть приложения, которым необходимо сохранять свое состояние в какой-либо базе данных, но не нужно сохранять это при перезапуске приложения. Подумайте о каком-то диспетчере процессов - он должен отслеживать запущенные подпроцессы, но эти данные действительны только до тех пор, пока работают приложение и подпроцессы.
17
ответ дан 28 November 2019 в 23:30
поделиться

Типичным вариантом использования является запуск модульных / интеграционных тестов.

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

15
ответ дан 28 November 2019 в 23:30
поделиться

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

0
ответ дан 28 November 2019 в 23:30
поделиться

Поддерживает ли ваш кеш-память SQL?

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

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

4
ответ дан 28 November 2019 в 23:30
поделиться

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

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

3
ответ дан 28 November 2019 в 23:30
поделиться

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

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

0
ответ дан 28 November 2019 в 23:30
поделиться

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

1
ответ дан 28 November 2019 в 23:30
поделиться

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

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

2
ответ дан 28 November 2019 в 23:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: