DBMS > CouchDB vs. Firebase Realtime Database vs. KeyDB vs. MySQL vs. Oracle NoSQL
System Properties Comparison CouchDB vs. Firebase Realtime Database vs. KeyDB vs. MySQL vs. Oracle NoSQL
Editorial information provided by DB-Engines | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name | CouchDB stands for "Cluster Of Unreliable Commodity Hardware" Xexclude from comparison | Firebase Realtime Database Xexclude from comparison | KeyDB Xexclude from comparison | MySQL Xexclude from comparison | Oracle NoSQL Xexclude from comparison | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Description | A native JSON - document store inspired by Lotus Notes, scalable from globally distributed server-clusters down to mobile phones. | Cloud-hosted realtime document store. iOS, Android, and JavaScript clients share one Realtime Database instance and automatically receive updates with the newest data. | An ultra-fast, open source Key-value store fully compatible with Redis API, modules, and protocols | Widely used open source RDBMS | A multi-model, scalable, distributed NoSQL database, designed to provide highly reliable, flexible, and available data management across a configurable set of storage nodes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Primary database model | Document store | Document store | Key-value store | Relational DBMS Key/Value like access via memcached API | Document store Key-value store Relational DBMS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Secondary database models | Spatial DBMS using the Geocouch extension | Document store Spatial DBMS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Website | couchdb.apache.org | firebase.google.com/products/realtime-database | github.com/Snapchat/KeyDB keydb.dev | www.mysql.com | www.oracle.com/database/nosql/technologies/nosql | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical documentation | docs.couchdb.org/en/stable | firebase.google.com/docs/database | docs.keydb.dev | dev.mysql.com/doc | docs.oracle.com/en/database/other-databases/nosql-database/index.html | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Developer | Apache Software Foundation Apache top-level project, originally developed by Damien Katz, a former Lotus Notes developer | Google acquired by Google 2014 | EQ Alpha Technology Ltd. | Oracle since 2010, originally MySQL AB, then Sun | Oracle | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Initial release | 2005 | 2012 | 2019 | 1995 | 2011 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Current release | 3.3.3, December 2023 | 8.4.0, April 2024 | 23.3, December 2023 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
License Commercial or Open Source | Open Source Apache version 2 | commercial | Open Source BSD-3 | Open Source GPL version 2. Commercial licenses with extended functionallity are available | Open Source Proprietary for Enterprise Edition (Oracle Database EE license has Oracle NoSQL database EE covered: details) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cloud-based only Only available as a cloud service | no | yes | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DBaaS offerings (sponsored links) Database as a Service Providers of DBaaS offerings, please contact us to be listed. | Aiven for MySQL: Fully managed MySQL, deployable in the cloud of your choice, with seamless integrations and lightning-fast setup. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Implementation language | Erlang | C++ | C and C++ | Java | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Server operating systems | Android BSD Linux OS X Solaris Windows | hosted | Linux | FreeBSD Linux OS X Solaris Windows | Linux Solaris SPARC/x86 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Data scheme | schema-free | schema-free | schema-free | yes | Support Fixed schema and Schema-less deployment with the ability to interoperate between them. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Typing predefined data types such as float or date | no | yes | partial Supported data types are strings, hashes, lists, sets and sorted sets, bit arrays, hyperloglogs and geospatial indexes | yes | optional | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XML support Some form of processing data in XML format, e.g. support for XML data structures, and/or support for XPath, XQuery or XSLT. | no | no | no | yes | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Secondary indexes | yes via views | yes | yes by using the Redis Search module | yes | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL Support of SQL | no | no | no | yes with proprietary extensions | SQL-like DML and DDL statements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
APIs and other access methods | RESTful HTTP/JSON API | Android iOS JavaScript API RESTful HTTP API | Proprietary protocol RESP - REdis Serialization Protoco | ADO.NET JDBC ODBC Proprietary native API | RESTful HTTP API | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Supported programming languages | C C# ColdFusion Erlang Haskell Java JavaScript Lisp Lua Objective-C OCaml Perl PHP PL/SQL Python Ruby Smalltalk | Java JavaScript Objective-C | C C# C++ Clojure Crystal D Dart Elixir Erlang Fancy Go Haskell Haxe Java JavaScript (Node.js) Lisp Lua MatLab Objective-C OCaml Pascal Perl PHP Prolog Pure Data Python R Rebol Ruby Rust Scala Scheme Smalltalk Swift Tcl Visual Basic | Ada C C# C++ D Delphi Eiffel Erlang Haskell Java JavaScript (Node.js) Objective-C OCaml Perl PHP Python Ruby Scheme Tcl | C C# Go Java JavaScript (Node.js) Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Server-side scripts Stored procedures | View functions in JavaScript | limited functionality with using 'rules' | Lua | yes proprietary syntax | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Triggers | yes | Callbacks are triggered when data changes | no | yes | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Partitioning methods Methods for storing different data on different nodes | Sharding improved architecture with release 2.0 | Sharding | horizontal partitioning, sharding with MySQL Cluster or MySQL Fabric | Sharding | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Replication methods Methods for redundantly storing data on multiple nodes | Multi-source replication Source-replica replication | Multi-source replication Source-replica replication | Multi-source replication Source-replica replication | Electable source-replica replication per shard. Support distributed global deployment with Multi-region table feature | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MapReduce Offers an API for user-defined Map/Reduce methods | yes | no | no | no | with Hadoop integration | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Consistency concepts Methods to ensure consistency in a distributed system | Eventual Consistency | Eventual Consistency if the client is offline Immediate Consistency if the client is online | Eventual Consistency Strong eventual consistency with CRDTs | Immediate Consistency | Eventual Consistency Immediate Consistency depending on configuration | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Foreign keys Referential integrity | no | no | no | yes not for MyISAM storage engine | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Transaction concepts Support to ensure data integrity after non-atomic manipulations of data | no atomic operations within a single document possible | yes | Optimistic locking, atomic execution of commands blocks and scripts | ACID not for MyISAM storage engine | configurable ACID within a storage node (=shard) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Concurrency Support for concurrent manipulation of data | yes strategy: optimistic locking | yes | yes | yes table locks or row locks depending on storage engine | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Durability Support for making data persistent | yes | yes | yes Configurable mechanisms for persistency via snapshots and/or operations logs | yes | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In-memory capabilities Is there an option to define some or all structures to be held in-memory only. | no | yes | yes | yes off heap cache | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User concepts Access control | Access rights for users can be defined per database | yes, based on authentication and database rules | simple password-based access control and ACL | Users with fine-grained authorization concept no user groups or roles | Access rights for users and roles | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
More information provided by the system vendorWe invite representatives of system vendors to contact us for updating and extending the system information, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Related products and services | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3rd parties | Navicat for MySQL is the ideal solution for MySQL/MariaDB administration and development. » more CData: Connect to Big Data & NoSQL through standard Drivers. » more Aiven for MySQL: Fully managed MySQL, deployable in the cloud of your choice, with seamless integrations and lightning-fast setup. » more Navicat Monitor is a safe, simple and agentless remote server monitoring tool for MySQL and many other database management systems. » more | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
We invite representatives of vendors of related products to contact us for presenting information about their offerings here. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
More resources | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CouchDB stands for "Cluster Of Unreliable Commodity Hardware" | Firebase Realtime Database | KeyDB | MySQL | Oracle NoSQL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DB-Engines blog posts | Couchbase climbs up the DB-Engines Ranking, increasing its popularity by 10% every month | Cloud-based DBMS's popularity grows at high rates | MySQL is the DBMS of the Year 2019 MariaDB strengthens its position in the open source RDBMS market The struggle for the hegemony in Oracle's database empire | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Recent citations in the news | How to Automate A Blog Post App Deployment With GitHub Actions, Node.js, CouchDB, and Aptible HNS IoT Botnet Evolves, Goes Cross-Platform IBM Cloudant pulls plan to fund new foundational layer for CouchDB How to install the CouchDB NoSQL database on Debian Server 11 CouchDB 3.0 ends admin party era • DEVCLASS provided by Google News | Realtime vs Cloud Firestore: Which Firebase Database to go? Atos cybersecurity blog: Misconfigured Firebase: A real-time cyber threat Don't be like these 900+ websites and expose millions of passwords via Firebase Google Firebase may have exposed 125M records from misconfigurations Google launches Firebase Genkit, a new open source framework for building AI-powered apps provided by Google News | Oh, snap! Snap snaps up database developer KeyDB Snap Acquires KeyDB for Open-Source Services Garnet–open-source faster cache-store speeds up applications, services Dragonfly 1.0 Released For What Claims To Be The World's Fastest In-Memory Data Store Microsoft open-sources Garnet cache-store -- a Redis rival? provided by Google News | Amazon Aurora MySQL version 2 (with MySQL 5.7 compatibility) to version 3 (with MySQL 8.0 compatibility) upgrade ... Enterprise Manager: How Comcast enhanced monitoring for MySQL InnoDB Clusters Ultimate MySQL Workbench Installation Guide [2024 Edition] Zendesk Moves from DynamoDB to MySQL and S3 to Save over 80% in Costs How to Create a MySQL 8 Database User With Remote Access provided by Google News | OpenWorld 2013: Oracle NoSQL Database On the Rise? Blog Theme - Details Oracle Defends Relational DBs Against NoSQL Competitors Oracle Adds New AI-Enabling Features To MySQL HeatWave Cloud database comparison: AWS, Microsoft, Google and Oracle provided by Google News |
Share this page