Throughput
Throughput is the amount of work a system completes per unit of time — such as queries per second, rows processed per second, or requests handled per minute — measuring capacity rather than the speed of any single operation.
Overview
Throughput measures a system's total processing capacity: how many operations, requests, rows, or bytes it can get through in a given amount of time (for example, queries per second, or rows scanned per second). It's distinct from latency, which measures how long any single operation takes. A system can have high throughput with relatively high per-operation latency (by processing many operations concurrently or in large batches), or low throughput despite low latency per operation (if it can only handle one request at a time).
What limits throughput
Throughput is typically bounded by whichever resource saturates first: CPU (compute-bound workloads), disk or network I/O (data movement-bound workloads), memory bandwidth, or concurrency limits (connection pools, thread counts, lock contention). Improving throughput usually means either parallelizing work across more resources (more cores, more machines) or reducing the amount of resource each unit of work consumes (better compression, more efficient execution, avoiding unnecessary data movement).
Throughput in analytical engines
DuckDB is designed around maximizing throughput for analytical (OLAP) queries on a single machine: it uses a vectorized, columnar execution engine that processes data in batches rather than row by row, and automatically parallelizes a query's work across all available CPU cores. This lets a single DuckDB process scan and aggregate very large volumes of data quickly, and its columnar storage and compression reduce the amount of I/O needed to read from disk, which raises effective throughput further for I/O-bound queries against files like Parquet.
Copy code
-- DuckDB automatically parallelizes a full-table scan and aggregation
-- across available threads without any explicit configuration
SELECT category, sum(amount), count(*)
FROM read_parquet('orders/*.parquet')
GROUP BY ALL;
Throughput versus scale
Single-node throughput has limits set by the hardware of that one machine. Distributed systems (Spark, distributed warehouses) trade added coordination overhead for the ability to scale throughput further by adding more machines. For workloads that fit within a single machine's resources, a highly optimized single-node engine like DuckDB can often deliver throughput competitive with, or exceeding, a distributed system, without the operational cost of managing a cluster.
Related terms
Latency is the time delay between initiating a request or operation and receiving its result — for example, the time from sending a database query to getting the first byte of its response back.
Database sharding →Database sharding is a horizontal partitioning technique that splits a large database into smaller, independent pieces called shards, each hosted on a separate server, to scale storage and throughput beyond a single machine.
Vectorized execution →Vectorized execution is a query processing model where each operator processes a batch (a "vector") of values at once, instead of one row at a time, to reduce interpretation overhead and better use modern CPUs.
Massively Parallel Processing (MPP) →Massively Parallel Processing (MPP) is a database architecture in which many independent nodes, each with their own CPU, memory, and storage, cooperate to execute a single query in parallel across a cluster.
in-memory database →An in-memory database is a type of database management system that primarily relies on a computer's main memory (RAM) for data storage and processing, as…
storage layer →The storage layer refers to the component of a data system responsible for persistently storing and managing data.
FAQS
Latency measures how long a single operation takes; throughput measures how many operations a system completes over a period of time. A system can improve one at the expense of the other — for example, batching increases throughput but can increase the latency of any individual item within a batch.
DuckDB uses vectorized, columnar query execution and automatically parallelizes work across available CPU cores, combined with efficient compressed columnar storage formats, which lets it process large volumes of data quickly without requiring a distributed cluster.
