база данных в оперативной памяти в Python

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

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

23
задан Claudiu 15 June 2010 в 17:13
поделиться

3 ответа

SQLite3 может работать. Интерфейс Python действительно поддерживает реализацию in-memory, которую предлагает SQLite3 C API.

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

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

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

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

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

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

42
ответ дан 29 November 2019 в 01:54
поделиться

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

0
ответ дан 29 November 2019 в 01:54
поделиться

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

Если возможно, взгляните на memcached . (для пары ключ-значение, молниеносно!)

ОБНОВЛЕНИЕ 1:

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

1
ответ дан 29 November 2019 в 01:54
поделиться
Другие вопросы по тегам:

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