Mimir Database Server
A whole MySQL in 320 KB.
Mimir is a tiny, MySQL-wire-compatible database server in C: a single ~320 KB static binary that runs unmodified WordPress and WooCommerce, co-located with PHP over a Unix socket. Same app, dramatically less database.

WordPress cannot tell it apart. Mimir speaks the real MySQL wire protocol and reports as 8.0.35-Mimir, so WordPress and WooCommerce run unmodified. Same mysqli driver, same queries, no plugin.
The problem
A full MySQL server, per site, is overkill
Most WordPress stacks run a complete MySQL or MariaDB server, hundreds of megabytes and a daemon to configure and babysit, with a network port, just to serve queries for one site. Multiply that across hundreds of containers and it is real RAM and real ops cost. Every database is one more thing to patch, tune, and monitor.
- Hundreds of MB resident, per site, before a single visitor
- A my.cnf to tune and a daemon to keep patched
- A network hop between PHP and its own database
# a full MySQL server, per site, just to run WordPress $ ps -o rss,comm -C mariadbd 412160 mariadbd # hundreds of MB resident, idle $ ls /etc/mysql/ my.cnf conf.d mariadb.conf.d # and a config to tune
By the numbers
Faster on reads, and a fraction of the size
On the point reads that make up the bulk of WordPress traffic, Mimir beats MariaDB on the same machine, while using a fraction of the memory and zero configuration.
Point-read latency over a Unix socket, warm cache, single client. Lower is better, so Mimir is about 30% quicker on the reads that dominate WordPress.
Honest about concurrency: Mimir leads single-client and stays even with MariaDB around four clients on the same socket. Beyond that on a small box, MariaDB pulls ahead. WordPress reads sit at the low end, where Mimir wins.
Container footprint, to scale. A MariaDB image runs to hundreds of MB; Mimir is a ~320 KB static binary. Illustrative, not a benchmark.
| Capability | Mimir | MariaDB / MySQL | SQLite |
|---|---|---|---|
| Speaks MySQL to WordPress | ● native | ● native | ✕ needs a shim |
| Footprint | ~320 KB static binary | Hundreds of MB | ~1 MB (in-process) |
| Runs co-located with PHP | ● Unix socket | Possible, heavier | ● in-process |
| Configuration | None | my.cnf, tuning | None |
| Point-read latency (warm, socket) | ~75 µs | ~105 µs | ~4 µs |
| Concurrent readers | Lock-free, mid concurrency | Scales well | In-process |
| Crash-safe (WAL + recovery) | ● | ● | ● |
| Runs on FROM scratch | ● | ✕ | ● (as a library) |
Latencies are point reads on a warm cache over a Unix socket, single client, on one 4-core box. Honest notes: at 8 or more concurrent clients on a small box MariaDB pulls ahead, and Mimir is not faster on writes (inserts are competitive, not class-leading). SQLite is faster still, but it cannot speak MySQL to WordPress without a translation shim. Mimir gives you the speed of a local engine with the compatibility of a MySQL server.
Same WordPress, less database
Everything WordPress expects, in one binary
Real MySQL on the wire
Full handshake, mysql_native_password auth, and both the text and binary (prepared-statement) protocols. It reports as 8.0.35-Mimir, so WordPress enables its modern features.
WordPress + WooCommerce, unmodified
The standard mysqli driver, WordPress core, and WooCommerce including Action Scheduler all connect with no code changes. Validated for WordPress and WooCommerce, not as a drop-in for every MySQL app.
~320 KB, FROM scratch
A single static musl binary with no shared-library dependencies, multi-arch for amd64 and arm64. It runs on an empty image, so there is nothing around it to patch.
Lock-free concurrent reads
MVCC snapshot isolation with lock-free readers and a single writer, so the read-heavy queries WordPress runs do not block each other.
Crash-safe by design
A write-ahead log with crash recovery keeps committed transactions intact through a hard crash, verified under kill -9 for durability, atomicity, and integrity.
Zero configuration
No my.cnf, no tuning knobs. It opens instantly, runs, and shuts down gracefully on SIGTERM with a clean checkpoint.
Two containers and a network hop become one container talking over a socket.
How it works
In the same container as PHP, over a socket
Mimir runs next to PHP-FPM in the same container and talks to it over a Unix socket, so there is no network hop between WordPress and its database. WordPress uses the ordinary mysqli driver; Mimir answers as a real MySQL server, serves reads from lock-free MVCC snapshots, and commits writes through a write-ahead log.
- PHP and Mimir in one container, one /data volume
- Unix socket, so no network round-trip per query
- Lock-free MVCC snapshots for concurrent reads
- Write-ahead log for crash-safe commits
It just works with WordPress
The database your WordPress thinks is MySQL
There is no plugin to install and no SQLite-style translation layer. Because Mimir is a real MySQL server on the wire, wp-config.php is unchanged: same DB_HOST, same DB_USER, the same mysqli driver. phpMyAdmin and the mysql command-line client work exactly as they do against MySQL.
- wp-config.php needs no changes
- phpMyAdmin and the mysql CLI work as usual
- Reports as 8.0.35-Mimir so modern features turn on
# to the client, it really is MySQL mysql> SELECT VERSION(); 8.0.35-Mimir mysql> SELECT @@version_comment; Mimir 1.0.3 # the 8.0.35 wire version lets WordPress enable modern features
Under the hood
Small on the outside, serious on the inside
Single-file storage engine
A B+tree storage engine with 16 KB pages and a buffer pool, all in one data file. The whole database is one volume to back up.
Write-ahead log + recovery
Durability, atomicity, and integrity are verified empirically. A deferred, bounded checkpoint keeps commits cheap and the WAL small.
MVCC snapshot isolation
Readers see a consistent snapshot without locking, and a single writer keeps the model simple and correct under concurrency.
Durability you choose
sync=full survives power loss; sync=normal trades that for faster writes and never corrupts the database. It mirrors SQLite’s synchronous setting.
Graceful, instant restarts
It opens instantly and shuts down on SIGTERM with a clean checkpoint, so container restarts are clean and fast.
Multi-arch musl binary
One static binary for amd64 and arm64, built on musl, with optional auth over a flag or env and a Unix socket or TCP.
Durability
Tested by pulling the plug
The promise is simple: if a transaction committed, it survives. Mimir is verified by committing data and then killing the process outright with kill -9. On restart the write-ahead log replays and every committed row is still there. For write-heavy workloads you can opt into sync=normal for faster commits, which may drop the most recent writes on power loss but never corrupts the file.
- Committed transactions survive a hard kill -9
- WAL replay on open restores a consistent state
- sync=full for power-loss safety, sync=normal for speed
mysql> INSERT INTO orders ...; COMMIT; $ kill -9 $(pidof mimir) # hard crash, no clean shutdown # restart: the write-ahead log replays on open mysql> SELECT COUNT(*) FROM orders; every committed row is still there
See the config
The only config is the one you already have
There is no my.cnf and nothing to tune. The wp-config.php you already use points straight at Mimir over its socket. Inside Unicorn Panel even this is wired up for you.
// wp-config.php, unchanged from any MySQL host define('DB_HOST', 'localhost:/run/mimir.sock'); define('DB_USER', 'app'); define('DB_PASSWORD', '...'); define('DB_NAME', 'wordpress'); // no my.cnf, no tuning, nothing else to configure
Zero lines of WordPress changed. This is the same wp-config.php any MySQL host uses.
Who it is for
Less to run, less to break, lower cost
Hosts and panel operators
Hundreds of sites, one container each. Replacing a full MySQL daemon per site with a 320 KB binary is real RAM and real ops cost reclaimed.
Self-hosters and agencies
WordPress on a small VPS without the heaviest, fiddliest part of the stack. No my.cnf, no OOM kills from the database, simple backups.
Container and edge deployers
A single immutable image. Shipping the database no longer means shipping an OS and a service manager too.
How to get it
Mimir is the database inside Unicorn Panel
Mimir is exclusive to Unicorn Panel. Choose it as the database for a site and the panel runs it co-located with PHP, wires up the socket, and keeps it updated. There is nothing separate to install, tune, or babysit.
Get Unicorn Panel Databases in the panel Explore the Unicorn Stack
Questions
Straight answers
Will my WordPress and WooCommerce work without changes?
Yes. Mimir speaks the MySQL wire protocol and reports as 8.0.35-Mimir, so the standard mysqli driver, WordPress core, and WooCommerce (including Action Scheduler) connect unmodified. No plugin, no translation layer. This is validated for WordPress and WooCommerce specifically, not as a drop-in for every MySQL application.
Is my data safe if the server crashes?
Yes. A write-ahead log plus crash recovery guarantee committed transactions survive a hard crash, and this is tested under kill -9. For maximum write speed you can opt into --sync=normal, which may lose the most recent commits on power loss but never corrupts the database.
Is it faster than MariaDB?
On the point reads that dominate WordPress traffic, yes: about 75 µs versus about 105 µs single-client over a socket, and it stays competitive up to mid concurrency. It is not faster at everything. Writes are competitive rather than class-leading, and at high concurrency on a small box MariaDB pulls ahead. We lead with reads because that is what WordPress does most.
How is it so small?
It is a single static C binary with no shared-library dependencies, around 320 KB, so it runs on an empty FROM scratch image. There is no OS, no service manager, and nothing to patch around it.
Does it support TLS, replication, or multiple simultaneous writers?
Not yet. Mimir is designed for an app co-located over a trusted Unix socket: one writer at a time with concurrent lock-free readers. TLS, replication, and multi-primary are not part of the design today.
Can I inspect it with phpMyAdmin or the mysql CLI?
Yes. Because it is a real MySQL server on the wire, phpMyAdmin and the mysql command-line client work as usual.
Same WordPress. Dramatically less database.
A ~320 KB MySQL-compatible server that runs WordPress unmodified, faster on the reads that matter, crash-safe, and zero-config.