I try to compare Mnesia with more traditional databases.
As I understand it tables in Mnesia can be located to (see Memory consumption in Mnesia):
ram_copies
- tables are stored inets
, so no durability as in ACID.disc_copies
- tables are located toets
anddets
, so the table can not be bigger than the available memory? And if the table are fragmented, the database can not be bigger than the available memory?disc_only_copies
- tables are locateddets
, so no caching in memory and worse performance. And the size of the table are limited to the size ofdets
or the table has to be fragmented.
So if I want the performance of doing reads from RAM and the durability of writes to disc, then the size of the tables are very limited compared to a traditional RDBMS like MySQL or PostgreSQL.
I know that Mnesia aren't meant to replace traditional RDBMS:s, but can it be used as a big RDBMS or do I have to look for another database?
The server I will use is a VPS with limited amount of memory, around 512MB, but I want good database performance.
Are disc_copies
and the other types of tables in Mnesia so limited as I have understood? Can´t the database be partially on memory and a full copy on disc?