Вопрос

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

Я думал о том, как их структурировать, и после попытки настроить некоторые сложные вложенные словари, я понял, что хорошее представление будет таблицей SQL. Я не хочу хранить данные обратно в постоянную базу данных. Существуют ли какие-либо реализации в память базы данных SQL, которая поддерживает запрос данных с SQL Syntax?

Это было полезно?

Решение

SQLite3 может работать. Интерфейс Python Поддерживает поддержку Реализация в памяти, что предложения SQLite3 C API.

Из спецификации:

Вы также можете поставить специальное имя: память: для создания базы данных в оперативной памяти.

Это также относительно дешево с транзакциями, в зависимости от того, что вы делаете. Чтобы идти, только что:

import sqlite3
conn = sqlite3.connect(':memory:')

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

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

Другие советы

Я думаю, sqlite3 будет лучшим вариантом тогда.

Если возможно, посмотрите на Memcached. Отказ (Для пары ключевой стоимости, быстрое освещение!)

Обновление 1:

HSQLDB. для SQL, таких как таблицы. (Нет поддержки Python)

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top