Skip to content

Benchmark

The benchmarks provided are meant to help development and offer a general sense of MangoSQL's performance. They are not intended to be exhaustive or compare every available method or library.

MangoSQL’s speed is not a primary objective, it's rather a byproduct of its design. By eliminating abstraction, reducing indirection, and directly interfacing with drivers, the system minimizes overhead.

Postgres

INFO

Library Tested:

  • MangoSQL with PQ+SQLX driver
  • MangoSQL with PGX
  • Gorm with PGX

Tested against a real postgres server postgres:16 (tmpfs & fsync=off)

CPU (Operation per second)

Axis

Horizontal: Size of payload (number of items)

Vertical: Converted ns/op -> op/s, to get unit easier to visualize

Memory Allocation

Axis

Horizontal: Size of payload (number of items)

Vertical: Go bench alloc/op


SQLite

INFO

Library Tested:

  • MangoSQL with modernc driver
  • Gorm with gorm sqlite driver

Tested in :memory: mode

CPU (Operation per second)

Axis

Horizontal: Size of payload (number of items)

Vertical: Converted ns/op -> op/s, to get unit easier to visualize

Memory Allocation

Axis

Horizontal: Size of payload (number of items)

Vertical: Go bench alloc/op


MariaDB

INFO

Library Tested:

  • MangoSQL with go-sql-driver
  • Gorm with gorm sqlite driver

CPU (Operation per second)

Axis

Horizontal: Size of payload (number of items)

Vertical: Converted ns/op -> op/s, to get unit easier to visualize

Memory Allocation

Axis

Horizontal: Size of payload (number of items)

Vertical: Go bench alloc/op