4

I am trying to find a decent relational database that would run on a small server, would be easy to administer and have much community love.

I need a lightweight relational database for my personal Ubuntu server with only 1Gb of RAM. It would be used for occasional reads and writes, so high performance is not required.

I considered popular options like MySQL and PostgreSQL, but those consume too much resources, even MariaDB may be too heavy since other projects should run on my server too.

I considered Firebird, but it turned out to be not very intuitive for me and troubleshooting is difficult without much community-generated guides.

I'm wondering if it's worth learning a niche database like Firebird for small pet projects. Are there any alternatives that require minimal RAM, have intuitive administration, drivers and ORM, and community support?

1
  • @ThorbjørnRavnAndersen is wasn't the most thorough analysis: I tried to set up MySQL, saw out-of-the-box RAM usage, then googled system requirements. Overall I came to a conclusion that it is recommended to run both MySQL and PostgreSQL on machines with more than 1Gb of RAM Commented Apr 16, 2023 at 18:22

3 Answers 3

1

With trivial settings changes, just the innodb buffer pool, and dropping the number of io threads, a MariaDB instance here runs with a resident set size of 200MB.

As a trick.. for whatever db you happen to use, find whatever method it has for showing all its default and current settings and copy them all into the config file.

Scan your eye down the list looking for anything that's either obviously a memory size (buffers/pools/caches) or implies it (minimum thread counts etc) and either just knock a digit off every number, or divide them all by the same divisor - you're just looking to scale things down roughly evenly.

You may have to iterate a little if the DB has rules about round number sizing or the ratios between settings, but you'll generally get obvious errors in the logs or outright failure to start - but more likely it'll be fine.

Most OTB configurations these days assume hundreds if not thousands of concurrent sessions, you just need to wind it back.

0
10

You could try SQLite.

It's the most lightweight, relational database system, with enough support, documentation, and user base to be considered mainstream, in my opinion. It's easy to learn and mostly follows the SQL standard. So, you'd be able to apply a lot of the syntactical knowledge gained to other relational database systems.

It's actually meant to be portable too, as one of its main use cases is for mobile applications that internalize the database on the mobile device. So, it's meant to operate in a lightweight fashion.

Though even smart mobile devices ran on more than 1 GB of memory when they first came out. I personally think anyone trying to run anything on that little of hardware is fighting an unnecessary uphill battle.

SQLite is an embedded database, meaning that your actual application process interacts with the database file, and there is no server involved. You can get programs that allow you to do queries over a network, like a normal database server, but SQLite isn't designed for this.

0
2

When I saw the subject my first though was the Firebid. It's a very cool database but not that popular because it was open sourced from Interbase lately when the MySQL become a de facto standard for web development. I used it 15 years for a quite big DB on few GB with a server that had something about 2Gb of RAM. It served 7 constantly connected clients.

It has a very good SQL syntax and stored procedures. As a GUI you may use IBExpert which is probably the best application to working with databases.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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