I have a test environment (all Linux) where we start our server application with MariaDB (which runs in docker in the case if it matters), run some tests, save the test results and drop the DB.

I want to limit the MariaDB disk usage (IOPS), because we really use the storage (with another systems) and I try to save some resources. I've realized, MariaDB shouldn't even write to the disk, as it is a test environment and I don't really need persistence. (If the node dies, the test anyway fails and we run it from scratch somewhere else.) As a side effect the test would be even faster (but it's not important).

What I've found is the Memory storage engine, what is not useful for me, because I don't want to change anything on SQL level as the same SQL scripts used on live systems (where a by mistaken left behind "ENGINE = MEMORY" would make a disaster).

I also could use a RAM disk as a filesystem and MariaDB wouldn't even realize the change. That's sound good, but in this case I have to maintain a right size of RAM disk and also waste of RAM as the data is (most likely) already in the RAM and we put it there again (on a RAM disk).

So I am looking for a solution which doesn't require changes on the DB level (SQL), but in the MariaDB config to reduce or completely eliminate the disk usage (IOPS) regardless of data durability.


InnoDB only processes in "RAM" -- specifically its "buffer_pool". InnoDB will persist things to "disk". So InnoDB will be doing a lot of ram-to-ram copies if you use a RAM-disk. However, you could save some RAM by decreasing innodb_buffer_pool_size and various other settings. Caution: don't lower them too much, or there can be failures.

Not the answer you're looking for? Browse other questions tagged or ask your own question.