Skip to main content

Maximum throughputs for a Single Databse Instances

You will notice in the table below, all NoSQL databases have higher read throughputs compared to MySQL or Postgres, because former uses Log Structured Merged (LSM) Tree based indexing whereas Postegres and MySQL uses B-trees. Why? Find the anwer in Martin Kleppman's book!

But ElasticSearch being a specialized full-text search system, is obvously slower for OLTP use cases.

Important caveats:

Numbers assume:

  • High-end server hardware (good CPU/RAM)
  • Data fits in memory
  • Simple queries/operations
  • Optimal schema design and indexing
  • No network bottlenecks
  • Batch operations might achieve higher throughput

Real-world performance often 5-10x lower due to:

  • Complex queries
  • Disk I/O
  • Network latency
  • Resource contention
  • Transaction overhead
DatabaseRead QPSWrite QPSNotes
PostgreSQL25K5KSimple queries, connection pooling, well-indexed tables
MySQL25K5KSimilar to Postgres, with InnoDB engine
Redis150K100KSimple GET/SET, data fits in memory
Neo4j10K1K-2KSimple graph traversals, cached data
MongoDB50K10KSimple documents, data in memory
Cassandra20K15KSingle node, optimized for writes
ClickHouse100K50KSingle node, columnar storage
ElasticSearch15K5KSingle node, document queries