AI Cost Visibility & Optimization Understand, allocate & reduce your AI costs - Learn More

Azure Database Cost Optimization: SQL, MySQL & PostgreSQL

Azure database costs get complicated quickly because there isn’t one pricing model to optimize. Azure SQL Database, Managed Instance, Elastic Pools, MySQL, and PostgreSQL each behave differently — with different compute models, scaling options, HA costs, and commitment discounts.

That means the biggest savings usually come from making the right decision at each layer: choosing the right database service and deployment model, right-sizing compute and storage, eliminating unnecessary HA or replica capacity, and then applying the right commitment once usage is predictable.

This guide breaks down where costs concentrate across Azure’s major database services and how to reduce them without locking too much spend into the wrong engine or configuration. For the broader framework, see the main Azure cost optimization guide.

Azure SQL: Database, Managed Instance & Elastic Pools

These aren't three equivalent products. Azure SQL Database and Managed Instance both run on the SQL Server engine but price differently: Azure SQL Database supports either DTU- or vCore-based purchasing, while Managed Instance is priced on vCores only. Elastic Pools aren't a separate product at all — they're a deployment option of Azure SQL Database itself, sharing a pool of DTUs (or vCores) across multiple databases instead of provisioning each one individually. Here's how they differ in practice:

Service

Best for

Primary cost driver

Guide

Azure SQL Database

A single, independently-scaled database

DTU or vCore compute tier, storage, and backup retention

Azure SQL Database pricing

SQL Managed Instance

Full SQL Server compatibility — cross-database queries, SQL Agent, CLR — typically for lift-and-shift migrations

vCore compute and storage, billed continuously as an always-on instance

SQL Managed Instance cost optimization

SQL Elastic Pools

Many databases with complementary usage patterns, such as multi-tenant SaaS

Shared eDTU or vCore pool capacity across all databases in the pool

SQL Elastic Pools cost optimization

Managed Instance is the most expensive default of the three, since it bills for a full always-on instance regardless of how much SQL Server compatibility a given workload actually uses — it's worth the cost only when that compatibility is a real requirement, not a convenience. Elastic Pools save the most when databases genuinely don't peak at the same time; pooling databases that do peak together just adds the pool's per-unit premium without the offsetting benefit.

Open-Source Databases — MySQL & PostgreSQL

Service

Primary cost driver

Where teams overspend

Azure Database for MySQL

Compute tier, storage, IOPS, and high availability

Running production-sized HA configurations for non-critical workloads

Azure Database for PostgreSQL

Compute tier, storage, IOPS, HA, and read replicas

Idle servers and oversized HA or read-replica configurations left running by default

MySQL and PostgreSQL price similarly to each other on Azure — both bill compute, storage, IOPS, and HA separately — but neither shares pricing or right-sizing logic with the SQL family, so a team optimizing Azure SQL Database well can still be significantly overspending on a PostgreSQL Flexible Server running alongside it.

Azure Cosmos DB

Cosmos DB prices differently from the rest of this list — throughput and storage, not instance size, drive the bill.

Throughput mode

Best for

Primary cost driver

Standard provisioned

Steady, predictable load

RU/s set manually

Autoscale provisioned

Variable traffic

RU/s ceiling, billed at a premium over standard

Serverless

Bursty or low-utilization workloads

Pay per request, no minimum

Storage bills separately, with analytical storage priced below transactional. Multi-region writes multiply RU costs per region. Where teams overspend: autoscale ceilings set well above actual peak, standard throughput on spiky workloads that would fit serverless, and multi-region writes enabled without a real latency or DR need.

Reducing Azure SQL Costs

Beyond choosing the right service, a handful of concrete levers close most of the gap between a working config and an optimized one:

  • Serverless vs. provisioned compute — For databases with genuine idle periods (dev/test, low-traffic apps), serverless auto-pauses compute after a configurable idle window and resumes on the next connection, billing only for active use. Provisioned compute makes sense once traffic is steady enough that pause/resume latency becomes a liability.
  • DTU vs. vCore selection — DTU bundles compute, storage, and I/O into one tier, which is simpler to size for smaller, less demanding databases. vCore separates compute from storage so each can scale independently — worth it once storage needs outgrow what a DTU tier's bundled allotment covers.
  • Right-sizing compute — Query Performance Insight and DTU/vCore utilization metrics over a trailing period, not a single peak day, show where a tier is oversized. Downsizing consistently underutilized tiers is usually the single largest lever here.
  • Backup and storage retention — Point-in-time restore retention beyond the included window bills per GB per month. Trimming retention to what's actually required, and offloading long-term retention to cheaper storage where compliance allows, removes a cost that compounds quietly.
  • Azure Hybrid Benefit — If you already hold SQL Server licenses with active Software Assurance, Hybrid Benefit swaps the license portion of the compute rate for those existing licenses — a direct discount with no workload changes required.
  • Zone redundancy and read replicas — Both add cost for availability and read scaling. Worth confirming the workload's actual SLA and read-traffic patterns justify the premium before applying it uniformly across every tier.

Watch the Costs Outside Compute

Compute tier is one line on the bill. Storage, IOPS, backups, HA, replicas, and cross-region replication are billed independently and don't scale down just because the instance did. Before committing spend to any one engine, check:

  • Storage and IOPS sized to actual usage, not provisioned headroom
  • HA and replica configurations matched to the workload's actual criticality
  • Backup retention set to what's required, not left at defaults
  • Cross-region replication tied to a real latency or DR requirement

Committing to Database Spend

Once usage is stable, database spend can be committed at a discount a few different ways: Reserved Capacity covers SQL Database, Cosmos DB, and Storage as a resource-based commitment, MySQL and PostgreSQL Flexible Server each have their own separate 1- and 3-year reserved pricing, and the newer database savings plans offer a spend-based alternative that spans SQL Database, Managed Instance, PostgreSQL, MySQL, and Cosmos DB under a single hourly commitment. See the full guide to Azure commitment management for how these compare to Reservations and Hybrid Benefit across the rest of the environment.

Balancing Reserved Capacity, Database Savings Plans, and right-sizing across five different database services — each with its own pricing model and renewal schedule — is exactly the kind of ongoing, cross-cutting problem that's easy to get wrong by hand as an environment grows.

Managing Azure Database Costs with nOps

nOps was built to handle exactly this balancing act automatically, with:

  • Commitment Management: Automatically maximize discounts and minimize commitment risk across Reservations, Savings Plans, Reserved Capacity, and Hybrid Benefit — continuously rebalancing as usage shifts rather than requiring a one-time decision. Customers typically save ~20% by switching to nOps — and with results-based pricing, you pay only when you get better results.
  • Unified visibility: Get all of your spending from Azure, AWS, GCP, AI, and SaaS in one place, with cost allocation by application, customer, team, or business unit to understand what is driving spend and where optimization will have the greatest impact.

We've talked to companies that can save millions on their cloud bills by switching to nOps from competitors. Book a free savings analysis to quantify exactly how much more you could save across your Azure databases and the rest of your cloud environment.

nOps manages $5B+ in cloud spend and was recently rated #1 in G2's Cloud Cost Management category.

Demo

AI-Powered Cost Management Platform

Discover how much you can save in just 10 minutes!

Book a Demo
Demo

FAQ

Which Azure database is cheapest?

It depends on the workload. For a single small database, Azure SQL Database on the serverless or DTU tier is usually cheapest. For many databases with complementary usage patterns, Elastic Pools bring the per-database cost down further. MySQL and PostgreSQL Flexible Server tend to be the cheapest baseline option for open-source workloads. Managed Instance is the most expensive by default, since it bills for a full always-on instance regardless of utilization.

How is Azure SQL Database priced?

Azure SQL Database has two purchasing models: DTU-based, which bundles compute, storage, and I/O into a single unit, and vCore-based, which prices compute and storage separately and includes a serverless option that pauses during idle periods. Elastic Pools aren't a third pricing model — they're a deployment option that shares a pool of DTUs (or vCores) across multiple databases instead of provisioning each one individually. Backup storage beyond the included allowance is billed separately under either purchasing model.

Elastic Pools or single databases — which is cheaper?

Elastic Pools are cheaper when multiple databases have complementary usage patterns — each peaking at a different time so they can share pool capacity rather than each being sized for its own peak. When databases peak simultaneously, or when too few databases share a pool, the pool's per-unit premium over a single database's DTU pricing isn't offset by the sharing, and standalone databases end up cheaper.

Does Reserved Capacity apply to MySQL and PostgreSQL?

Azure offers reserved capacity pricing for MySQL and PostgreSQL Flexible Server instances directly, in addition to the newer Database Savings Plan, which covers MySQL and PostgreSQL alongside SQL Database, Managed Instance, and Cosmos DB under a single spend-based commitment — useful when usage is spread across more than one of these engines.

How do you right-size an Azure SQL database?

Start with Query Performance Insight and DTU or vCore utilization metrics in Azure Monitor over a trailing period — not a single peak day — to see actual resource consumption. From there, downsize tiers that are consistently underutilized, and consider consolidating multiple low-utilization databases into an Elastic Pool instead of leaving each individually provisioned at its own tier.

Tags

nOps

nOps

Published Date: September 10, 2026, Microsoft Azure

Related Posts

Azure Compute & Container Cost Optimization

Microsoft Azure

Azure Compute & Container Cost Optimization

bynOpsnOpsPublished Date: Sep 10, 2026
Azure Commitments: Reservations, Savings Plans, Reserved Capacity & Hybrid Benefit

Microsoft Azure

Azure Commitments: Reservations, Savings Plans, Reserved Capacity & Hybrid Benefit

bynOpsnOpsPublished Date: Sep 9, 2026
Azure Cost Optimization: The Complete Guide for 2026

Microsoft Azure

Azure Cost Optimization: The Complete Guide for 2026

bynOpsnOpsPublished Date: Sep 8, 2026
Azure Database for PostgreSQL Cost Optimization: The Essential Guide

Microsoft Azure

Azure Database for PostgreSQL Cost Optimization: The Essential Guide

bynOpsnOpsPublished Date: Jul 20, 2026
Azure SQL Elastic Pools Cost Optimization: The Essential Guide

Microsoft Azure

Azure SQL Elastic Pools Cost Optimization: The Essential Guide

byShouri ThallamShouri ThallamPublished Date: Jul 16, 2026
Azure Database for MySQL Cost Optimization: How to Cut Managed MySQL Costs by 30-60%

Microsoft Azure

Azure Database for MySQL Cost Optimization: How to Cut Managed MySQL Costs by 30-60%

bynOpsnOpsPublished Date: Jul 18, 2026