No SQL (Why & What & When)
This post extends from a summary of a video + e.g. + criteria. See here (cn) for detailed situatoins & examples regarding usecase.
Traditional Relational DBs #
Mysql, PostgreSQL, SQLite, Amazon Redshift, Amazon Aurora.
Why #
Too much data. Too expensive to store in one computer.
Need distributed DB.
However, relationship DBs (SQL) are not designed and not suitable for this situation.
What #
Thus, NoSQL occured, with several types.
key-value DB #
Memcached, Redis, Oracle NoSQL, dbm, Amazon SimpleDB, Microsoft Azure’s Table, more.
column-family (column-oriented / wide-column) DBs (key-value model but with two levels of nesting) #
HBase, Cassandra (by Facebook), Google Bigtable, more.
HBase is a free and open source implementation of Google’s BigTable.
object-based storage devices (OSD) #
Amazon S3, Scality, Ceph, LizardFS (mooseFS), SwiftStack, IBM Spectrum Scale (a.k.a. GPFS), GlusterFS (inability to scale).
See alternatives on wiki.
See also Distributed File Systems (DFS).
document DBs (JSON, XML, etc.) #
MongoDB (BSON /ˈbiːsɒn/ format), Amazon DynamoDB, more.
Those DBs can be used for full-text DBs.
graph DBs #
Neo4j, more.
time series DBs #
InfluxDB, RRDtool, more.
search engines #
Elasticsearch, Amazon CloudSearch, more.
other types no-SQL DB #
See more categories on DB Engines ranking.
Also: wikipedia NoSQL
When #
situation 1: too much data #
situation 2: rapid changed development #
Criteria for Choice #
See techtarget article.
Trend #
See also top DB and their trend.
Ref’s #
Examples come from kdnuggets & the above techtarget article.
graph database (Chinese)