DuckDB

DuckDB is in-process columnar analytics engine — SQLite's shape, a warehouse's execution model. We compare it in Database engines. It is top of its roster on Ops burden (1). The trade-off is being 5th of 5 on Replication (None).

What is DuckDB?

DuckDB — In-process columnar analytics engine — SQLite's shape, a warehouse's execution model. DuckDB is an embedded analytical database from CWI Amsterdam, now maintained by DuckDB Labs with the IP held by a non-profit foundation. It uses vectorised columnar execution across all cores, reads Parquet, CSV, JSON, S3 and live PostgreSQL tables without loading them first, and is included here as the analytical contrast rather than as an OLTP option — it has no replication and a single-process write path. Built by DuckDB Labs. Founded 2019. Open source under MIT.

We track it in 1 comparison — Database engines — so every claim below is a cell in a table you can open and check rather than an impression. Across those rosters it sits against 4 other tools, and what follows is where it visibly separates from them.

Where it wins.

  • Ops burden — 1, tied for best across 2 of 5 tools.

Each of those is ranked against the whole roster on its category page, not against a hand-picked subset, so a first place here means first of everything we list.

Where it gives ground.

  • Replication — None, the weakest of the 5 here. PostgreSQL records Built-in async + synchronous.
  • PITR — No. PostgreSQL records Yes.
  • Online schema change — No. MySQL records Yes.
  • Migration tooling — 2, the weakest of the 5 here. PostgreSQL records 5.

None of these disqualify it on their own. They are the fields to check against your own requirements before you commit, because they are the ones where a competitor genuinely does better.

Provenance. 24 of 26 tracked fields carry a value for DuckDB, and 17 of those cite a document you can open. Last verified 2026-07-01. Every figure keeps its own provenance — measured by us, claimed by the vendor, inferred, or community-reported — and we would rather print a dash than a guess.

Its nearest neighbour in our data is MariaDB. DuckDB is ahead on Ops burden (1 against 3) and GitHub stars (33,000 against 6,000). MariaDB takes Replication (Built-in async + synchronous against None) and PITR (Yes against No). That pattern repeats across the rest of the roster — see DuckDB alternatives for the other rivals, each compared the same way.

At a glance
Company
DuckDB Labs
Founded
2019
Licence
MIT (open source)
Fields we track
24 of 26
Last verified
2026-07-01

DuckDB in Database engines

Ranked against 5 tools across 26 sourced fields. Open the full Database engines table.

The analytical contrast, included so the other four are legible — not a candidate for your application database. It answers questions the OLTP engines answer badly, on a laptop, over Parquet you never loaded, and it will lose your data if you treat it as a system of record without a backup story.

Where it lands in this roster
Ops burden
11st of 5
Inferredverified 2026-07-01
Replication
None5th of 5
Vendor-claimedverified 2026-07-01source
PITR
No5th of 5
Inferredverified 2026-07-01
Online schema change
No4th of 5
Inferredverified 2026-07-01
Migration tooling
25th of 5
Inferredverified 2026-07-01
Client libraries
35th of 5
Inferredverified 2026-07-01
Managed options
MotherDuck5th of 5
Inferredverified 2026-07-01
Extension ecosystem
42nd of 5
Vendor-claimedverified 2026-07-01source

When to use DuckDB

DuckDB is the right call in these situations, each one drawn from a field we actually record:

  • Aggregation and scans over columns rather than fetching rows by key.
  • Querying Parquet, CSV or object storage without an ingestion pipeline.
  • The reporting half of a system whose rows live in Postgres or SQLite.
  • Ops burden is your binding constraint. DuckDB records 1, the best figure in the Database engines roster. We define that field as 1–5, lower is less work.

When not to use DuckDB

Reach for something else when any of the following is a requirement rather than a nice-to-have:

  • Replication. DuckDB records None, the weakest of the 5 tools in the Database engines roster. PostgreSQL records Built-in async + synchronous on the same field. If that is a hard requirement rather than a preference, start elsewhere.
  • PITR. DuckDB records No on the Database engines table. PostgreSQL records Yes on the same field. If that is a hard requirement rather than a preference, start elsewhere.
  • Online schema change. DuckDB records No on the Database engines table. MySQL records Yes on the same field. If that is a hard requirement rather than a preference, start elsewhere.
  • Migration tooling. DuckDB records 2, the weakest of the 5 tools in the Database engines roster. PostgreSQL records 5 on the same field. If that is a hard requirement rather than a preference, start elsewhere.
  • Client libraries. DuckDB records 3, the weakest of the 5 tools in the Database engines roster. SQLite records 5 on the same field. If that is a hard requirement rather than a preference, start elsewhere.

We publish this block because a comparison that only lists what a tool is good at is marketing. Every figure above sits on the same page as its source, and the field definitions are on the category tables if you want to check how we measured them.

Tools compared alongside DuckDB

Everything below shares at least one comparison category with DuckDB, ordered by how much overlap there is. For the reasoning on each — which fields it wins, which it loses — see DuckDB alternatives.
The relational server that ran the early web, now Oracle-stewarded and InnoDB-based.

Recent DuckDB changes

  • 2025-09-16 · launchDuckDB 1.4.0 becomes the first LTS releaseDuckDB adopts a long-term-support line and adds database encryption and MERGE INTO. The LTS commitment is the more consequential half: it is the point at which running DuckDB as durable infrastructure, rather than as a notebook tool, stops being reckless.
Full DuckDB changelog

Sources and gaps

What we don't know. 2 of the 26 fields we track for DuckDB are still blank: Max database size and Default max conns. Those render as dashes rather than as zeroes or assumptions, because an empty cell and a bad cell are not the same thing and only one of them is honest. If you know any of these figures and can point at a document, tell us.

Every figure on this page traces back to a document you can open. Where a vendor claims a number we could not reproduce, the cell says so.