База данных в памяти в Python
-
27-09-2019 - |
Вопрос
Я делаю некоторые запросы в Python в большой базе данных, чтобы получить некоторую статистику из базы данных. Я хочу, чтобы эти статистики были в памяти, чтобы другие программы могли использовать их, не собираясь в базу данных.
Я думал о том, как их структурировать, и после попытки настроить некоторые сложные вложенные словари, я понял, что хорошее представление будет таблицей SQL. Я не хочу хранить данные обратно в постоянную базу данных. Существуют ли какие-либо реализации в память базы данных SQL, которая поддерживает запрос данных с SQL Syntax?
Решение
SQLite3 может работать. Интерфейс Python Поддерживает поддержку Реализация в памяти, что предложения SQLite3 C API.
Из спецификации:
Вы также можете поставить специальное имя: память: для создания базы данных в оперативной памяти.
Это также относительно дешево с транзакциями, в зависимости от того, что вы делаете. Чтобы идти, только что:
import sqlite3
conn = sqlite3.connect(':memory:')
Затем вы можете продолжить, как вы использовали обычную базу данных.
В зависимости от ваших данных - если вы можете получить ключ / значение (строки, хэши, списки, множества, отсортированные множествами и т. Д.) - Редис Может быть еще один вариант, чтобы исследовать (как вы упоминали, что вы хотели поделиться с другими программами).
Другие советы
Вы могли бы использовать базу данных, как SQLite.. Отказ Это не строго говорить в памяти, но это довольно светло и будет полностью отделен от вашей основной базы данных.