Skip to main content
All comparisons/ScramDB vs Amazon Redshift

ScramDB vs Amazon Redshift

Redshift’s own documentation says it plainly: primary key, foreign key and unique constraints are informational only and are not enforced. It is available only as an AWS service, billed per node hour or per processing unit, and it is built for analytical batch work rather than the transactional half of your application. ScramDB enforces its constraints, runs anywhere you can copy a binary, and answers a full analytical workload over 100 million rows in 31.6 seconds while serving transactions on the same data.

Constraints
Enforced
Redshift documents primary, foreign and unique keys as informational only and not enforced.
Where it runs
Anywhere
Redshift exists only inside AWS, as a provisioned cluster or serverless workgroup.
Workload
Both halves
Transactions and analytics on one copy, rather than a warehouse fed from somewhere else.
Cost model
No node hours
No cluster to size, no processing units, no concurrency-scaling meter.
At a glance

Side by side

ScramDBAmazon Redshift
DeploymentOne binary, your hardware or any cloudAWS only: provisioned clusters or serverless workgroups
Keys and constraintsPrimary keys, foreign keys, unique and CHECK constraints, enforcedInformational only, explicitly not enforced. NOT NULL is the exception
Transactional workloadServed by the same engine on the same copyAnalytical and batch oriented, fed by a pipeline from elsewhere
Cost modelThe machine you already runNode hours, or processing unit hours with a 60 second minimum, plus concurrency scaling
IsolationRead committed, repeatable read and serializableSnapshot and serializable
Wire protocolPostgreSQL wire protocol, every standard driverPostgreSQL derived, with its own dialect and limits
AI and agentsA semantic layer inside the engine that agents connect to directly, bound by the caller’s own permissionsRedshift ML calls out to SageMaker; native vector search unverified
BranchingFork the database instantly, or open it as it was at any past timestampSnapshots and restores of a cluster

Unenforced keys are a data quality problem waiting to happen

When the warehouse treats a foreign key as a hint, nothing stops an orphaned row from landing, and the planner may even make decisions on the assumption that it cannot. Every guarantee has to be re-implemented in the pipeline that feeds it. ScramDB enforces the constraint where the data lives, once.

A warehouse is only half a deployment

Redshift holds a copy of data that lives somewhere else, which means a pipeline, a schedule and a lag. ScramDB holds the data, serves the transactions against it, and answers the analytical questions from the same rows, so the reporting number and the application number are the same number.

When Redshift is the right answer

You are deep in AWS, your analytics is batch shaped, and the integration with S3, Glue and QuickSight is worth more to you than owning the engine.

The measurement, as of 5 September 2026. A full analytical workload over 100 million rows of real web analytics data, run on a 16 vCPU AWS instance. Ours is a single ScramDB node in its stock configuration, with the GPU off and nothing tuned for the test. Rival figures are those systems’ own published results for the same instance type. These are the numbers as of that date, not a permanent scoreboard: the engine is tuned continuously and it has got faster through every round of this work, so a later run should read better than this one.

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

Quick start · How the engine works · Talk to us

A full analytical workload over 100 million rows of real web analytics data, run on a 16 vCPU AWS instance, measured 5 September 2026. Ours is a single ScramDB node in its stock configuration, with the GPU off and nothing tuned for the test. Rival figures are those systems’ own published results for the same instance type. These are the numbers as of that date, not a permanent scoreboard: the engine is tuned continuously and it has got faster through every round of this work, so a later run should read better than this one.