Intento comparar Mnesia con bases de datos más tradicionales.¿Dónde se encuentran las mesas en Mnesia?
como yo lo entiendo tablas en Mnesia se pueden localizar a (ver Memory consumption in Mnesia):
ram_copies
- tablas se almacenan enets
, por lo que no la durabilidad como en el ácido.disc_copies
- las tablas se encuentran enets
ydets
, por lo que la tabla no puede ser más grande que la memoria disponible? Y si la tabla está fragmentada, la base de datos no puede ser más grande que la memoria disponible?disc_only_copies
- las tablas están ubicadas endets
, por lo que no hay almacenamiento en memoria caché ni un peor rendimiento. Y el tamaño de la tabla está limitado al tamaño dedets
o la tabla debe estar fragmentada.
Así que si quiero el rendimiento de hacer lecturas desde la RAM y la durabilidad de las escrituras en el disco, el tamaño de las tablas es muy limitado en comparación con un RDBMS tradicional como MySQL o PostgreSQL.
Sé que Mnesia no está destinado a reemplazar los RDBMS tradicionales, pero ¿se puede usar como un RDBMS grande o tengo que buscar otra base de datos?
El servidor que usaré es un VPS con cantidad limitada de memoria, alrededor de 512MB, pero quiero un buen rendimiento de la base de datos.
¿Están disc_copies
y los otros tipos de tablas en Mnesia tan limitados como he entendido? ¿No puede la base de datos estar parcialmente en la memoria y una copia completa en el disco?
Gracias! Según tengo entendido, las tablas estarán limitadas a menos de 512 MB en mi caso, a menos que tenga 'disc_only', que da un mal rendimiento. Entonces mejor buscar otra base de datos entonces. Como solo tengo 512MB de RAM. – Jonas
Esencialmente lo que quiere es almacenar en caché y no, hasta donde yo sé, Mnesia no hace eso por usted. Obviamente es posible implementarlo, pero no está esperando por ti :) –