SQL Dialects & Portability

Choosing a Relational Database

Database selection is an evidence-backed fit decision under explicit assumptions. Start with correctness and workload, then test operability, recovery, ecosystem, deployment constraints, staffing, lifecycle cost, and acceptable specialization instead of applying a universal product ranking.
  • Correctness requirements are gates.
  • Use representative workload shapes.
  • The deployment is part of the product.
  • Operability must be demonstrated.
  • Ecosystem includes people.
  • Cost is lifecycle risk-adjusted cost.
  • Revisit the decision.
Weighted scorecard—weights and gates come from the project
DimensionEvidence to collectGate or scored question
Correctnessinvariant/concurrency/type testsall required histories preserved?
Query/workloadproduction-shaped plans and p95/p99objectives at peak plus headroom?
Evolutionlarge-table migration rehearsalsblocking/failure/resume acceptable?
Recovery/reliabilityrestore, PITR, failover drillsmeasured RPO/RTO and data loss?
Observability/securityleast privilege, audit, waits/plansoperators can detect and diagnose safely?
Deployment/lifecycleupgrade, patch, topology, limitsfits platform and ownership model?
Ecosystem/skillsdriver/tool support and staffingsupportable on call for years?
Economics/exit3–5 year scenarios and exportrisk-adjusted cost and exit acceptable?
Selection protocol
Proof-of-concept protocol
1. Load production-shaped volume, skew, Unicode/time/null edge corpus.
2. Enforce canonical commerce constraints and run concurrent checkout/inventory histories.
3. Run critical joins, search, pagination, reports, imports, and maintenance together.
4. Capture plans, waits, lock chains, resource curves, tail latency, and cost drivers.
5. Exercise required extensions and driver/ORM/migration tooling.
6. Rehearse expand-contract migration, backup restore, PITR, replica lag, failover, and upgrade.
7. Test least privilege, audit evidence, observability, deployment automation, and support escalation.
8. Export schema/data to the stated exit format and estimate conversion loss/time.
9. Publish raw results, assumptions, uncertainty, owners, and rejection criteria.