Skip to main content
All comparisons/ScramDB vs YugabyteDB

ScramDB vs YugabyteDB

YugabyteDB reuses the PostgreSQL query layer over DocDB, an LSM key-value store, and has no integrated columnar or MPP engine: analytical work is expected to leave the database for Spark or a warehouse. ScramDB keeps it in, on one copy, and finished the same questions 1638x faster.

Faster
1,638x
ScramDB 31.6s against Yugabyte 51,702s. Both systems answered every query.
Faster from cold
284x
ScramDB 189s against Yugabyte 53,488s. First touch, nothing cached.
Faster to load
6.5x
ScramDB 717s against Yugabyte 4,683s. Full 100M row ingest.
Smaller on disk
4.5x
ScramDB 16.1 GiB against Yugabyte 71.6 GiB. Same data, after load.
At a glance

Side by side

ScramDBYugabyteDB
StorageColumnar and compressed: 16 GiB for the same dataDocDB, a RocksDB-derived LSM store. Row and document oriented
Analytical engineAnalytical queries run in the database, on every core, in seconds. GPU execution availableNo integrated columnar or MPP engine; heavy analytics is expected to run in an external system
IsolationSerializable isolation, with repeatable read and read committed availableSerializable, Snapshot and Read Committed in YSQL
Single nodeOne binary, production ready on a single machineProduction guidance is replication factor 3, so 3 nodes minimum
Wire protocolPostgreSQL wire protocolPostgreSQL wire protocol (YSQL) plus a Cassandra-compatible API
Analytics on live dataSame copy, no exportRead replicas exist for scaling reads and are asynchronous
AI and agentsA semantic layer built into the engine that AI agents connect to directly, bound by the caller’s own permissionsNone built in
LicenseCommunity free to 64 GiB stored, Enterprise for clusteringApache 2.0

The numbers

YugabyteDB needed 51,702 seconds to answer the same questions, and 71.60 GiB on disk. ScramDB needed 31.56 seconds and 16.07 GiB. Both speak the PostgreSQL wire protocol and both offer serializable isolation, so the difference is not the interface or the guarantee. It is that one of them stores columns and compiles the query to machine code.

Analytics that does not have to leave

When the answer to a reporting question is "export it to Spark", you have acquired a second system, a copy of the data, a scheduling problem and a staleness window. ScramDB answers the reporting question in the database, against the same rows your transactions are writing, with the same roles and row-level security policies applied.

When YugabyteDB is the right answer

Globally distributed OLTP where multi-region resilience is the headline requirement, under a fully Apache-2.0 license with no enterprise gate on replication or encryption.

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.