25+ Alternative & Open Source Database Engines

Almost every web developer has a favorite database that he/she feels comfortable working with as all the tricks & gimmicks are already experienced.

It can be one of the popular databases below:

or even simpler ones like XML, text, etc.

It is understandable why these databases are frequently used; they are well-documented, have a community behind them, integrated with most popular CMSs', easy-to-use, offered by most of the hosting companies ,etc..

But there are also many other databases which are getting popular day-by-day & may have advantages over what you're already using.

Here are 25+ open source alternative databases that you may consider using in your next project:

MongoDB

MongoDB

It is an open source, high-performance, scalable, schema-free & document-oriented (JSON-like data schemas) database.

There are ready to use drivers for most popular programming languages like PHP,Python, Perl, Ruby, JavaScript, C++ + more.

Hypertable

Hypertable

Hypertable is a high performance distributed data storage system designed to support applications requiring maximum performance, scalability, and reliability.

It is modeled after Google's BigTable and mostly focuses on large-scale datasets.

Apache CouchDB

Apache CouchDB

A document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript.

CouchDB offers a RESTful JSON API which can be accessed from any environment allowing HTTP requests

Neo4j

Neo4j Graph Database

It is an embedded, disk-based, and fully transactional Java persistence engine that stores data structured in graphs rather than tables.

Neo4j offer a massive scalability. It can handle graphs of several billion nodes/relationships/properties on a single machine and can be scaled across multiple machines.

Riak

Riak

Riak is a very ideal database for web applications as it combines:

  • a decentralized key-value store
  • a flexible map/reduce engine
  • a friendly HTTP/JSON query interface.

Oracle Berkeley DB

Oracle Berkeley DB

It is an embeddable database engine that provides developers with fast, reliable, local persistence with zero administration.

Oracle Berkeley DB is a library that links directly into your application & enables you to make simple function calls rather than sending messages to a remote server for a better performance.

Apache Cassandra

Apache Cassandra

Cassandra is a highly scalable second-generation distributed database that is used by giants like Facebook, Digg, Twitter, Cisco & more..

It aims to provide a consistent, fault-tolerant & highly available environment for storing data.

Memcached

Memcached

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

It is intended for use in speeding up dynamic web applications by alleviating database load.

Firebird

Firebird

Firebird is a relational database that can run on Linux, Windows & various UNIX platforms.

It offers high performance and powerful language support for stored procedures and triggers.

Redis

Redis

Redis is an advanced fast key-value database written in C which can be used like memcached, in front of a traditional database, or on its own.

It has support for many programming languages & used by popular projects like GitHub or Engine Yard.

There is also a PHP client named Rediska for managing Redis databases.

HBase

Hadoop HBase

HBase is a distributed & column-oriented store which can also be called as the Hadoop database.

The project aims to host very large tables like "billions of rows, millions of columns".

It has a  REST-ful web service gateway that supports XML, Protobuf, and binary data encoding options.

Keyspace

Keyspace

It is a consistently replicated, fault-tolerant key-value store that works in Windows OS.

Keyspace offers high availability by masking server/network failures & appearing as a single, highly available service.

4store

4store

4store is a database storage and query engine that holds RDF data.

It is written in ANSI C99, designed to run on UNIX-like systems & offers a high performance, scalable & stable platform.

MariaDB

MariaDB

MariaDB is a backward compatible, drop-in replacement branch of the MySQL® Database Server.

It includes all major open source storage engines + the Maria storage engine.

Drizzle

Drizzle

It is a fork of MySQL that focuses on being a reliable database optimized for Cloud and Net applications.

HyperSQL

HyperSQL

It is a SQL relational database engine written in Java.

HyperSQL offers a small & fast database engine which has in-memory and disk-based tables, supports embedded/server modes.

Also, it has tools such as a command line SQL tool & GUI query apps.

MonetDB

MonetDB

MonetDB is a  database system for high-performance applications in data mining, OLAP, GIS, XML Query, text & multimedia retrieval.

Persevere

Persevere

It is an object storage engine and application server (running on Java/Rhino) that provides storage of dynamic JSON data for rapidly develop data-driven JavaScript-based rich internet applications.

eXist-db

eXist-db

eXist-db is built using XML technology. It stores XML data according to the XML data model & features efficient, index-based XQuery processing.

Others

39 Comments
  1. Reply David February 15, 2010 at 9:06 AM

    Very impressive list! Thank you Umut!

    I would include another embedded one: Apache Derby.

  2. Reply Jordan Walker February 15, 2010 at 9:23 AM

    I was not aware of all the different dbs to choose from. Thanks for the information.

  3. Reply Thomas Craig Consulting February 15, 2010 at 9:44 AM

    Excellent articles, will be taking a look at a couple of these as some might be perfect for small apps.

  4. Reply Umut M. February 15, 2010 at 11:07 AM

    @David,

    Didn’t know about Apache Derby, just added it to the list.

    @Jordan, @Thomas,

    Great to see that you liked the article.

  5. Reply Sergey February 15, 2010 at 12:15 PM

    What about Mnesia (Erlang) ?

  6. Reply Sunny Kumar February 15, 2010 at 1:28 PM

    Great List. Thanks for posting.

  7. Reply Patrick February 15, 2010 at 1:48 PM

    Nice list. I have another one, too. H2 (h2database.com) is like hsqldb – in memory db and very easy to use.

  8. Reply Gene De Lisa February 15, 2010 at 4:50 PM

    There’s also NextDB.

    http://www.nextdb.net/

  9. Reply chris February 16, 2010 at 1:34 AM

    You missed hamsterdb!
    http://hamsterdb.com

  10. Reply Umut M. February 16, 2010 at 2:21 AM

    @Patrick, @chris,

    Added them to the list. Thanks.

    @Gene De Lisa,

    NextDB doesn’t seem to be open source, am I wrong?

  11. Reply Manuel February 16, 2010 at 6:27 AM

    sadly, pretty much all of them are not available if you’re not in a dedicated environment.

  12. Reply SM February 16, 2010 at 6:55 AM

    Good collection. MongoDB is great. Thanks

  13. Reply fernando trasviña February 16, 2010 at 10:16 AM

    i would also include persevere to the list.
    http://www.persvr.org/
    “The Persevere Server is an object storage engine and application server (running on Java/Rhino) that provides persistent data storage of dynamic JSON data in an interactive server side JavaScript environment”

  14. Reply Epo February 16, 2010 at 10:16 AM

    There’s also
    – DB4o a java/.net a OODBMS with many powerfull features.

    http://www.db4o.com

    -eyedb a sgbdo written in c++ an OODBMS with link to IDL, java and of course C++

    http://www.eyedb.org

    Both are free/opensource.

  15. Reply nathan February 16, 2010 at 3:08 PM

    I can’t believe openlink virtuoso os edition isn’t on this list – it’s a seriously strong very mature bit of kit that’s used by some of the biggest entities around (and IMHO much better than virtually all the above, if not all) – and no I’m not affiliated in any way; it just rocks

  16. Reply christian February 17, 2010 at 1:35 AM

    ZODB, The ZODB package is a Python object persistence system. It provides the Z Object Database separately from Zope so it can be used in non-Zope related Python applications to provide transparent object-oriented persistency.

  17. Reply BrokenClock February 17, 2010 at 7:29 AM

    Hi,

    txtSQL (http://txtsql.com/), a PHP flat file SQ engine is also missing…

    Thx for this list!

  18. Reply James February 17, 2010 at 8:31 PM

    Wonderful article. Didn’t know about most of them until I read this post. Thanks a lot.

  19. Reply agaelebe February 18, 2010 at 8:04 AM

    What about Tokyo Cabinet?

  20. Reply Yansky February 19, 2010 at 4:32 PM

    http://exist-db.org/ is another good one.

  21. Reply Gert Van Gool February 20, 2010 at 1:53 PM

    I second @Sergey, mnesia (http://www.erlang.org/doc/apps/mnesia/).

    How about Project Voldemort (from LinkedIn, http://project-voldemort.com/)

  22. Reply Elving February 22, 2010 at 11:25 AM

    WOW! what a great list!! I didn’t knew half of this even existed! It will come in handy when mysql dies 🙁

  23. Reply TheAL March 4, 2010 at 3:45 AM

    I’mma stick with MySQL and XML, but this was a great find!

  24. Reply agence internet March 4, 2010 at 4:53 AM

    Thanks for the article and this great list

  25. Reply 501st_commander March 10, 2010 at 9:54 PM

    txtSQL’s site is gone, you can find it here now: http://sourceforge.net/projects/txtsql/

    includes docs

  26. Reply ssge March 15, 2010 at 5:13 PM

    Thanks for the list! Do you also have any comparison analysis between any of them?

  27. Reply ogolla March 22, 2010 at 8:02 AM

    Still, MSSQL rocks. Nothing comes closer to it.

  28. Reply Craig Norvell April 6, 2010 at 1:31 PM

    AllegroGraph – Graph Database, implemented for RDF

    http://www.franz.com/agraph

  29. Reply brightblue May 12, 2010 at 3:46 PM

    Which one of these would be easiest for a beginner?

  30. Reply Slapo July 4, 2010 at 6:18 AM

    I found another interesting database quite recently, it’s called Cubrid:
    http://www.cubrid.org/

    I haven’t tried it out yet but it looks very good on paper.

  31. Reply Mimesis August 19, 2010 at 2:40 PM
  32. Reply kadishmal November 2, 2010 at 9:34 PM

    I would second Slapo. I am a savvy CUBRID user (http://www.cubrid.org). Use it for my own sites, and administer for my clients. Used to deploy default MySQL, but found out CUBRID runs faster. Why don’t you include it in your list as well? It’s popular in Korea, and now heading to the global market as they have already ported WordPress, Joomla, phpBB, MediaWiki, and other CMS to work with CUBRID.

  33. Reply TedK February 21, 2011 at 10:55 PM

    eXtremeDB – http://www.mcobject.com/extremedbfamily.shtml

    Not open source but certainly “Alternative” and used in some very interesting high scalability scenarios.

  34. Reply tlu April 13, 2011 at 6:24 AM

    Ingres was missed.

  35. Reply Embedded Database Company August 19, 2011 at 5:28 PM

    RDM Embedded is a good database when the database needs to be tightly integrated with the application.

    Fast in-memory database too: http://www.raima.com/in-memory-database/

  36. Reply archana July 27, 2012 at 3:44 AM

    hi i am new , i want t know which one is best open source t use other than mysql and postgres….
    i want t use java r javascripts t write

  37. Reply AShopper August 12, 2012 at 3:05 PM

    BaseX is an open-source XML database. Seems to perform better and be more standards-compliant than eXist-db although not as well known.

  38. Reply prado January 3, 2013 at 5:02 AM

    Thanks for the list guys, still counting………..

  39. Reply Brother Bill October 8, 2013 at 7:47 AM

    Add taffydb, which a client side database, for storing local data.

Leave a reply

Search