ScramDB vs QuestDB
QuestDB is built for one shape of data: every table needs a designated timestamp, there is no row-level DELETE statement (its documentation points you at dropping partitions instead), and there are no foreign keys, triggers or stored procedures. Replication, role-based access control and point-in-time recovery are Enterprise features. ScramDB is a general-purpose database that is also fast on time ranges, and it read this dataset from cold, loaded it and stored it far more efficiently.
Side by side
| ScramDB | QuestDB | |
|---|---|---|
| Deleting rows | An ordinary transactional DELETE | No row-level DELETE statement; the documented path is dropping or rewriting partitions |
| Schema requirements | Ordinary tables, ordinary keys | A designated timestamp column is required for partitioning and time-series queries |
| Referential integrity | Foreign keys, CHECK constraints, triggers, PL/pgSQL procedures | None of the four |
| Access control | Roles, grants and row-level security in the free edition | Role-based access control is an Enterprise feature |
| High availability | Clustering across machines | Replication and read replicas are Enterprise features; open source is a single instance |
| Wire protocol | PostgreSQL wire protocol, every standard driver | PostgreSQL wire protocol, plus its own ingestion protocols |
| Branching | Fork the database instantly, or open it as it was at any past timestamp | Backup and point-in-time recovery are Enterprise features |
| AI and agents | A semantic layer inside the engine that agents connect to directly, bound by the caller’s own permissions | N-dimensional array type; no vector index |
Fast at one thing, missing several others
QuestDB is genuinely quick on time-window queries, and it pays for that with the rest of a database. No DELETE, no foreign keys, no triggers, no procedures, and a mandatory timestamp on every table. If your data is a tick stream that is a fair trade; if it is an application, it is a long list of things you now do in application code.
And the operational pieces you expect from a database, replication, role-based access control, backups with point-in-time recovery, sit behind the Enterprise edition.
When QuestDB is the right answer
Financial tick data and high-frequency IoT telemetry where ingest rate and time-window queries are the whole workload, and the timestamp is genuinely the primary axis of everything you ask.
Other head to heads
Same wire protocol, same drivers, same SQL. A columnar engine and native-code execution underneath.
ClickHouse cannot hold your transactions, so it lives next to a real database with a pipeline between them. ScramDB is both.
No columnar storage, no vectorized execution, no parallel query in the community server. Every analytical scan is a row walk.
Run it yourself in one line
One static binary, no dependencies. It picks its own config, listens on the postgres port 5432 and runs in the background.
$curl -fsSL https://scramdb.com/install | bash