base de dados em memória em Python

Estou a fazer algumas perguntas em Python numa grande base de dados para obter estatísticas da base de dados. Quero que estas estatísticas estejam em memória para que outros programas possam usá-las sem ir a uma base de dados.

Eu estava pensando em como estruturá-los, e depois de tentar montar alguns dicionários aninhados complicados, eu percebi que uma boa representação seria uma tabela SQL. Mas não quero guardar os dados na base de dados persistente. Existem implementações em memória de um banco de dados SQL que suporta questionar os dados com a sintaxe SQL?

Author: Claudiu, 2010-06-15

3 answers

SQLite3 pode funcionar. A interface Python suporta a implementação na memória que a API C SQLite3 oferece.

Da especificação:

Você também pode fornecer o nome especial : memória: criar um banco de dados em RAM.

Também é relativamente barato com transacções, dependendo do que estás a fazer. Para começar, apenas: [[5]}
import sqlite3
conn = sqlite3.connect(':memory:')
Pode então proceder como se estivesse a usar uma base de dados regular.

Dependendo dos seus dados - se pode sobreviver com a chave/valor (strings, hashes, lists, sets, Sets ordenados, etc) - Redis pode ser outra opção a explorar (como mencionou que queria partilhar com outros programas).

 33
Author: Tim Post, 2014-03-07 15:18:32
Então, o SQLite3 será a melhor opção.

Se possível, dê uma vista de olhos a memcached . (para o par chave-valor, iluminação rápida!)

Actualizar 1:

HSQLDB para tabelas semelhantes a SQL. (sem suporte em python)

 1
Author: zengr, 2010-06-15 17:24:05

É possível usar uma base de dados como SQLite . Não é estritamente falando em memória, mas é bastante leve e seria completamente separado de seu banco de dados principal.

 0
Author: Matthew Vines, 2010-06-15 17:19:53