UK’s trusted IT infrastructure partner since 2003
Servnet
ConfiguratorGet in Touch
Best RAID for databases (SQL, Oracle, Postgres) — analysisBest RAID for databases (SQL, Oracle, Postgres) — analysis — reach
Storage · RAID

Best RAID for databases (SQL, Oracle, Postgres)

Servnet Storage Team · Storage & Data Protection7 min read

Databases are write-heavy and latency-sensitive, so the best RAID minimises the write penalty and keeps latency predictable — which almost always means RAID 10 on flash. Size it in the RAID 10 calculator.

Database storage by RAID
RAID 10RAID 5/6ZFS mirrorWrite penalty×2×4 / ×6CoWWrite IOPSBestThrottledScales w/ vdevsLatencyPredictableVariableGoodVerdictDefaultRead-heavy onlyZFS estates

Why RAID 10 wins for databases

Transactional databases (SQL Server, Oracle, PostgreSQL, MySQL) issue lots of small random writes — commits, log flushes, index updates — and care deeply about latency. Parity RAID's write penalty (×4 RAID 5, ×6 RAID 6) directly throttles that, while RAID 10's ×2 penalty roughly doubles write IOPS and keeps latency predictable.

RAID 10 also rebuilds fast (mirror copy, no parity recompute), so performance stays high during a failure — important for an always-on database. The trade-off is 50% capacity, which databases usually justify.

Flash, and separating workloads

Use SSD/NVMe — databases are IOPS- and latency-bound, and flash removes the seek bottleneck. Classic practice separates data files, transaction logs and tempdb onto different volumes so sequential log writes don't contend with random data I/O; on a modern all-flash array this matters less but is still good hygiene for the busiest systems.

On ZFS, use mirror vdevs (not RAIDZ) for database datasets — a RAIDZ vdev only gives one drive's random IOPS. Tune recordsize/volblocksize to the database's block size (see ZFS tuning).

Database storage choice
Write-heavy OLTP?
yes
RAID 10 flash
read / reporting
RAID 6 flash OK
ZFS
Mirror vdevs

Sizing and protection

Size by peak write IOPS plus headroom, and confirm the delivered write IOPS in the calculator — compare RAID 10 against RAID 6 to see the penalty difference on your drives. For tier-0 databases, all-NVMe arrays (NetApp, Pure, HPE Alletra) are the enterprise route — our finder sizes them.

And databases above all need backups and point-in-time recovery — RAID protects the disk, not the data. See RAID is not a backup.

Key takeaways
  • Databases are write-heavy and latency-sensitive — minimise the write penalty.
  • RAID 10 on flash is the standard: ×2 penalty, double the write IOPS, fast rebuilds.
  • On ZFS use mirror vdevs (not RAIDZ); separate data/log/tempdb on busy systems.
  • Size by peak write IOPS + headroom; databases still need backups and PITR.
Frequently asked

FAQs — Best RAID for databases (SQL, Oracle, Postgres)

RAID for databases

What is the best RAID for SQL Server / Oracle?

RAID 10 on SSD/NVMe. Its ×2 write penalty (vs ×4 RAID 5, ×6 RAID 6) roughly doubles write IOPS and keeps latency predictable, and mirror-copy rebuilds keep performance up during a failure. The 50% capacity cost is usually worth it for transactional databases.

Can I use RAID 5 or 6 for a database?

For read-heavy reporting databases or where capacity dominates and writes are light, parity RAID on flash can work. For write-heavy OLTP, the ×4–×6 write penalty throttles performance — RAID 10 is the safe default.

Should databases use RAIDZ on ZFS?

Use mirror vdevs, not RAIDZ. A RAIDZ vdev delivers only about one drive's random IOPS, which limits a busy database; striped mirrors scale IOPS with vdev count. Match recordsize to the DB block size.

Related

Continue reading

More in Storage

Got a question this article didn't answer?

One conversation with an engineer who's done this before. No sales script.

Talk to Servnet →