Pregunta

Estoy haciendo algunas consultas en Python en una gran base de datos para obtener algunas estadísticas de la base de datos. Quiero que estas estadísticas estén en memoria para que otros programas puedan usarlas sin ir a una base de datos.

Estaba pensando en cómo estructurarlos, y después de tratar de establecer algunos diccionarios anidados complicados, me di cuenta de que una buena representación sería una mesa SQL. Sin embargo, no quiero volver a almacenar los datos en la base de datos persistente. ¿Hay implementaciones en memoria de una base de datos SQL que admita la consulta de los datos con la sintaxis SQL?

¿Fue útil?

Solución

SQLITE3 podría funcionar. La interfaz Python Soporte La implementación en memoria que ofrece la API SQLITE3 C.

De la especificación:

También puede proporcionar el nombre especial: Memoria: para crear una base de datos en RAM.

También es relativamente barato con transacciones, dependiendo de lo que esté haciendo. Para ponerse en marcha, solo:

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

Luego puede continuar como si estuviera usando una base de datos regular.

Dependiendo de sus datos, si puede obtener una clave/valor (cadenas, hashes, listas, conjuntos, conjuntos ordenados, etc.) - Rehacer Podría ser otra opción para explorar (como mencionó que quería compartir con otros programas).

Otros consejos

Supongo que SQLITE3 será la mejor opción entonces.

Si es posible, eche un vistazo a memcached. (¡Para el par de valores clave, iluminación rápido!)

Actualización 1:

Hsqldb Para tablas como SQL. (Sin apoyo de Python)

Posiblemente podría usar una base de datos como Sqlite. No está estrictamente hablando en la memoria, pero es bastante ligero y estaría completamente separado de su base de datos principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top