Obsfly

Migration guides / Stack

From MySQL to Obsfly

Postgres has matured for analytical workloads in a way MySQL hasn't.

Why teams switch

  • Postgres has matured for analytical workloads in a way MySQL hasn't.
  • Better JSON / JSONB support and richer indexing.
  • Stronger ecosystem for extensions (pg_partman, pg_cron, pg_vector).
  • Migration tooling has caught up; pgloader handles 80% of moves.

What MySQL is genuinely good at

Fairness signal — useful in renewal conversations.

  • MySQL is still simpler operationally for write-heavy OLTP at scale.
  • Replication and HA on MySQL is mature and well-understood.

Migration playbook

  1. Step 1

    Run Obsfly on both databases during migration

    Compare slow-query distributions on MySQL today vs. Postgres after import — same telemetry, side by side.

  2. Step 2

    Use pgloader for the bulk move

    Schema + data + sequences. Obsfly's schema view confirms parity post-load.

  3. Step 3

    Validate with replay

    Capture top 100 normalized queries from MySQL via Obsfly, replay against Postgres, compare p99s.

  4. Step 4

    Cut over reads, then writes

    Standard dual-write or read-replica-cutover pattern. Obsfly's host map shows both during the transition.

Pitfalls to avoid

  • Postgres p99 will look worse before it looks better; tune autovacuum, shared_buffers, work_mem after cutover.
  • Plan for the auto_explain difference — Postgres needs explicit setup.

FAQ

Will Obsfly track the migration progress?
Yes — both DBs appear in the host map. The traffic-shift shows in the QPS sparklines.

Ready to switch?

Book a 30-minute migration call.

We'll spec your parallel-run plan together, agree on success criteria, and quote your first 30-day deal.

Book a call →
From MySQL to Obsfly — migration guide · Obsfly