Skip to main content
All comparisons/ScramDB vs openGauss

ScramDB vs openGauss

openGauss is a PostgreSQL derivative with a separate column store you opt into per table, plus a third in-memory engine for OLTP. You pick the storage model per table up front and live with it, and its documented serializable isolation is implemented as repeatable read. ScramDB has one store that serves both workloads, genuine serializable isolation, and it answered the same analytical workload 9 times faster.

Faster
9.1x
ScramDB 31.6s against openGauss (column store) 286s. Both answered every query.
Faster from cold
2.0x
ScramDB 189s against openGauss (column store) 377s. First touch, nothing cached.
Faster to load
2.1x
ScramDB 717s against openGauss (column store) 1,471s. Full 100 million row ingest.
Smaller on disk
1.1x
ScramDB 16.1 GiB against openGauss (column store) 18.4 GiB. Same data, after load.
At a glance

Side by side

ScramDBopenGauss
Storage modelOne columnar store for every tableRow store, column store or the in-memory engine, chosen per table
Serializable isolationGenuinely serializableDocumented as implemented equivalent to repeatable read
ExecutionQueries compile to native machine code and use every coreThe PostgreSQL executor lineage, with a column store for scans
DeploymentOne binary, one process, clustering when you want itPrimary plus standby for production reliability
Wire protocolPostgreSQL wire protocol, every standard driverPostgreSQL derived
Row-level securityPolicies on select, insert, update and deletePolicies on select, update and delete
BranchingFork the database instantly, or open it as it was at any past timestampBackup and restore
AI and agentsA semantic layer inside the engine that agents connect to directly, bound by the caller’s own permissionsA vector extension with nearest neighbour indexes

Choosing the storage model is a decision you get wrong later

Row store or column store per table means committing to how a table will be queried before you know. The table you built for transactions is the one someone reports on six months later, and changing your mind is a migration.

ScramDB has one store. The transaction and the aggregation read the same columnar data, and no table has to be nominated for one job or the other.

When openGauss is the right answer

PostgreSQL-compatible OLTP on ARM hardware with enterprise high availability requirements, under the Mulan permissive licence.

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.