Skip to content
Navigation

Type at least two characters. Search covers page titles, headings, tags and database names.

↑ ↓ to navigateEnter to openEsc to close0 pages
Time Seriesbeginner

Time Series Databases Overview

What distinguishes a time-series database, the properties every one of them must solve, and how the three covered here differ.

2 min readBeginnerUpdated Edit this page

Time-series data is append-mostly, timestamped, queried over ranges, and less valuable as it ages. Every time-series database is a set of answers to the same six questions.

QuestionWhy it matters
Data modelHow a series is identified, and therefore how cardinality grows
IngestionWhether writes are batched, and how out-of-order points are handled
CompressionStorage cost, which dominates at this volume
RetentionHow old data is removed without an expensive delete
DownsamplingHow history is kept cheaply at lower resolution
CardinalityThe real scaling limit — see Cardinality

Why general-purpose databases struggle

A row store writes each point as a row with full overhead and indexes it as if it were random. A billion points a day means a billion rows, an index that no longer fits in memory, and a retention policy implemented as a DELETE that generates bloat.

Time-series engines exploit the structure instead: partition by time so retention is a partition drop; store values columnar and delta-encoded so compression is high; and index by series rather than by row.

The three covered here

TimescaleDB — a PostgreSQL extension. Full SQL, joins against relational data, and the PostgreSQL operational model. The right choice when time-series data must be queried alongside business data, or when the team already runs PostgreSQL.

VictoriaMetrics — a Prometheus-compatible metrics database focused on ingestion efficiency and low storage cost. The right choice for infrastructure and application metrics at scale, where PromQL is the query language you want.

InfluxDB — purpose-built for time series. Note that its storage engine and query language changed substantially between major versions, so version matters more here than with most engines when reading documentation or evaluating tooling.

Choosing

  • Metrics from Prometheus-style exporters, at high volume → VictoriaMetrics.
  • Time-series data joined with relational data, SQL required → TimescaleDB.
  • Wide event data with ad-hoc analytical queries → consider ClickHouse instead; it handles this well, at the cost of building retention and downsampling yourself.
  • IoT or sensor telemetry with a self-contained stack → InfluxDB, verifying the version's query language and clustering story matches your requirements.