← All benchmarksSQL

Parquet vs CSV: 3x smaller and 3.6x faster in DuckDB

How much smaller and faster is Parquet than CSV?

Converting a 30-million-row CSV (1.35 GB) to Parquet with zstd gave a 0.43 GB file, and the same query dropped from 6.3 s to 1.8 s in DuckDB. The conversion took 25 s.

Results

CSV1.35 GB, 6.3 s/query
Parquet (zstd)0.43 GB, 1.8 s/query

How it was measured

Best of 3 runs of a group-by query.

COPY (SELECT * FROM read_csv('orders.csv')) TO 'orders.parquet' (FORMAT parquet, COMPRESSION zstd)

Why

Parquet is columnar and compressed, so queries read fewer bytes.

When this does not apply

Conversion costs time up front.

Environment

MacBook Air (Apple silicon, 8 cores), macOS. Measured 2026-10-12.

Source: shorts/demo-ticket/cost/pq.py in my content-engine repository. Treat any single run as a direction; re-run it on your hardware.

By Josué Barros, senior software engineer (full-stack, data and AI).