Skip to main content
All comparisons/ScramDB vs MySQL

ScramDB vs MySQL

MySQL is a fine transactional database and a poor analytical one, by design. The community server has no columnar storage engine, no vectorized execution and no intra-query parallelism, so a 100 million row aggregation is a row-by-row walk on one core. ScramDB answers the same questions 696x faster, in 5.5x less disk, over a PostgreSQL wire protocol your driver already speaks.

Faster
696x
ScramDB 31.6s against MySQL 21,962s. Both systems answered every query.
Faster from cold
118x
ScramDB 189s against MySQL 22,307s. First touch, nothing cached.
Faster to load
14x
ScramDB 717s against MySQL 10,004s. Full 100M row ingest.
Smaller on disk
5.5x
ScramDB 16.1 GiB against MySQL 88.0 GiB. Same data, after load.
At a glance

Side by side

ScramDBMySQL
StorageColumnar and compressed: 16 GiB for the same dataInnoDB row store with optional page compression
ExecutionQueries compile to native machine code and run on every core: 31.6 seconds for the whole analytical workloadNo vectorized engine, no parallel query, no JIT in the community server. Hash join since 8.0.18
Analytics on live dataSame copy, no exportColumn-level analytics is a separate product (HeatWave), not the open source server
TransactionsFull ACID up to serializable isolation, and a transaction across machines that commits everywhere or nowhereFull ACID on InnoDB, all four isolation levels
Scale outTurn on clustering when you need it, with the same guarantees across the cluster and across regionsReplication and Group Replication for availability. No native sharding
Wire protocolPostgreSQL wire protocolMySQL protocol
AI and agentsA semantic layer built into the engine that AI agents connect to directly, bound by the caller’s own permissionsVECTOR type with distance functions since 9.0; no mature ANN index in the base reference
LicenseCommunity free to 64 GiB of stored data, Enterprise for clustering and beyondGPLv2 or a commercial license from Oracle

The gap is structural, not a tuning problem

MySQL took 21,962 seconds to answer the queries ScramDB answered in 31.56. That is six hours against half a minute. No amount of tuning closes a gap of that shape, because the shape is architectural: InnoDB stores rows, reads them one at a time, and runs the query on a single core.

The load tells the same story from the other side. ScramDB ingested the 100 million rows in 717 seconds and kept them in 16.07 GiB. MySQL took 10,004 seconds and 87.95 GiB.

What you would be moving to

ScramDB speaks the PostgreSQL wire protocol rather than the MySQL one, so this is a migration, not a drop-in. What you get on the other side is the full relational surface you already rely on (foreign keys, triggers, stored procedures, prepared statements, roles and privileges) plus row-level security, serializable snapshot isolation, instant database branching and a built-in semantic layer for AI agents.

When MySQL is the right answer

High-throughput single-row OLTP with a mature replication story and the largest hosting ecosystem in the industry. If your queries are point reads and single-row writes and you never scan, MySQL is not the bottleneck and there is nothing here to fix.

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.