Selecting sensibly.
WHAT TO START WITH
A relational database.
WHY
It handles the overwhelming majority of applications well, and its constraints prevent real problems.
WHAT TO ASK BEFORE CHOOSING SOMETHING ELSE
What specific limitation are we hitting?
WHAT THE HONEST ANSWER USUALLY IS
None yet.
WHAT SUGGESTS A DOCUMENT STORE
Genuinely schema-less data Deeply nested records always read whole
WHAT SUGGESTS A KEY-VALUE STORE
Caching Sessions Ephemeral counters
WHAT SUGGESTS A SEARCH ENGINE
Full-text search across large content, with ranking.
WHAT SUGGESTS A TIME-SERIES STORE
Enormous volumes of timestamped measurements.
WHAT SUGGESTS A COLUMNAR STORE
Analytical queries over very large tables.
WHAT RUNNING SEVERAL COSTS
Operational burden, backups, monitoring and expertise, multiplied.
WHAT TO WEIGH
Whether the benefit justifies operating another system.
WHAT TO AVOID
Choosing on popularity Choosing for a scale you do not have Running four databases for one application
WHAT MOST APPLICATIONS ACTUALLY NEED
One relational database, indexed properly, with a cache in front.