On this page
  1. What is storage, and why is it a different problem from memory?
  2. SATA SSD vs NVMe: the interface is the difference
  3. What the numbers on the box mean
  4. When does storage speed actually matter?
  5. Where AI coding assistants get this wrong
  6. Checklist
  7. FAQ
    1. Is NVMe always better than SATA?
    2. Why is my cloud database slower than my laptop?
    3. How long does an SSD last?
  8. Related topics
  9. Sources
comparison

SSD vs HDD vs NVMe: What Storage Speed Actually Means

Hard drives, SATA SSDs, and NVMe drives differ by more than a factor of a hundred. Learn which number matters for your workload and where cloud storage quietly hurts.

Quick answer

  • Three storage tiers, roughly a thousand times apart: RAM in nanoseconds, NVMe in tens of microseconds, a spinning hard drive in milliseconds.
  • An HDD stores data on a spinning platter and pays for physical seek time; an SSD has no moving parts; NVMe is an SSD talking directly to the CPU over PCIe instead of through a SATA controller.
  • IOPS (operations per second) matters for databases and small random reads; throughput (MB/s) matters for large sequential transfers.
  • Cloud block storage is network-attached, so it is slower and more variable than the local NVMe in the same machine, and you often pay for provisioned IOPS.
  • Sequential speed is the number on the box; random access is the number your database actually lives on.

What is storage, and why is it a different problem from memory?

Storage is the permanent tier: the drive that keeps your files, your database, and your container images after the power goes out. Every read from it costs far more time than a read from memory, and the only reason computers feel fast is that operating systems and databases work hard to avoid touching it. The gap is worth remembering as magnitudes rather than precise figures: fetching from RAM is around 100 nanoseconds, reading from a fast NVMe drive is tens of microseconds, and a spinning hard drive seeking to the right place is around 10 milliseconds. That last figure is roughly a hundred thousand times slower than RAM, which is why a machine with plenty of memory and a slow disk can still be quick, and a machine with a slow disk and no memory cache cannot.

Two families of device sit at the durable end. Hard disk drives (HDDs) store magnetically on spinning platters and read with a moving head, which makes them cheap per terabyte and slow, especially for random access. Solid state drives (SSDs) store in flash memory chips with no moving parts, which makes them fast and quiet and more expensive per terabyte. Almost every laptop and server today uses SSDs, and HDDs survive where capacity matters more than speed: archives, backups, bulk media, and cheap storage tiers in the cloud.

SATA SSD vs NVMe: the interface is the difference

Among SSDs there are two connection types and a real gap between them. A SATA SSD uses the same interface as an old hard drive, and that link caps out at around 550 MB/s no matter how fast the flash chips are — the interface, not the storage, is the bottleneck. An NVMe (non-volatile memory express) drive connects over PCIe, the same high-speed lanes the graphics card uses, and speaks a protocol designed for flash: many commands in flight at once, direct paths to the CPU, and throughput that runs into several gigabytes per second on current generations.

The practical difference shows up less in copying big files and more in doing many small operations at once. Because NVMe supports deep queues, it can service thousands of times more random operations per second than a hard drive and several times more than SATA, which is exactly the pattern a database or a container runtime produces. A server booting twenty containers or a database committing thousands of small transactions feels that difference directly and continuously.

# Which drives are in this machine? ROTA=0 means solid state
lsblk -d -o NAME,ROTA,SIZE,MODEL

# Is the disk the bottleneck right now?
iostat -x 1         # watch %util and await on the busiest device

What the numbers on the box mean

Sequential read and write speeds are the headline figures, and they describe one specific case: a long, contiguous transfer. Random 4 KB read and write figures, usually expressed as input/output operations per second (IOPS), describe the case your software actually creates. A drive advertising 7,000 MB/s sequential might do a few hundred thousand random reads per second; a hard drive manages a couple of hundred. If you are choosing storage for a database, ignore the sequential number and look at random IOPS and latency.

Two more specifications matter when you are buying rather than renting. Endurance, quoted in terabytes written (TBW), is how much data the drive can be written before the flash wears out — generous for normal use, but genuinely relevant if something rewrites the same data constantly. And the presence of a DRAM cache or a technology like host memory buffer changes sustained performance: cheap drives are fast until their cache fills, then drop sharply, which is why a drive can score well in a short benchmark and disappoint in production. On the cloud side, the equivalent distinction is between local NVMe attached to the instance and network-attached block storage, which is durable across machine failures but slower and billed by provisioned capacity and IOPS.

When does storage speed actually matter?

It matters when your software performs many small operations, or any operation that cannot be avoided. Database queries that miss their index hit storage on every row they scan, so an unindexed query on an NVMe drive is fast and the same query on network storage is unbearable — which is why ‘it was fine locally’ is such a common production story. Committing transactions, writing logs, pulling container images, loading a model’s weights at startup, and building a cache all involve storage, and each is a place where the slowest component sets the pace for everything waiting on it.

It matters much less for the things people benchmark. Copying a large file is a throughput test that modern drives all pass comfortably; it is not the workload a web application generates. When you are diagnosing slowness, measure before upgrading: iostat will show a device at 100% utilisation with high await times when storage is the true bottleneck, and it will show an idle disk when the real problem is memory pressure, a slow query, or a chatty network call. Upgrading a drive that was already idle fixes nothing.

Where this bites vibecoders

Storage is where ‘works on my laptop’ is most misleading, because a developer machine has local NVMe and a production environment often has network-attached or shared storage with a fraction of the IOPS. An AI assistant will happily generate code that writes a file per request, rebuilds a cache from disk on every boot, or runs several queries per page load — all fine locally, all expensive on cloud storage that bills provisioned operations. The questions that catch it are simple: how many small writes does this make per request, and does anything here happen on a schedule that a cache could absorb?

Where AI coding assistants get this wrong

  • Assuming local SSD performance matches cloud block storage.
  • Writing a file per request or per log line instead of batching and buffering.
  • Rebuilding a derived file or cache from scratch on every start instead of persisting it.
  • Choosing storage by sequential throughput when the workload is random reads.
  • Ignoring provisioned IOPS limits on cloud volumes until the database slows under load.
  • Repeatedly rewriting the same data to a cheap drive and burning through its endurance.

Checklist

  • Identify whether the workload is random small I/O or large sequential I/O.
  • Check whether production storage is local or network-attached before benchmarking locally.
  • Confirm the volume’s provisioned IOPS and throughput are enough for the write pattern.
  • Batch small writes and enable buffering rather than writing per event.
  • Persist derived data instead of rebuilding it on every start.
  • Measure with iostat before buying a faster drive.
  • Back up the data somewhere that is not the same device or volume.

FAQ

Is NVMe always better than SATA?

For performance, yes — NVMe has far more bandwidth and can handle many more outstanding operations at once. For a machine that mostly stores files and boots occasionally, a SATA SSD is already fast enough that you will not notice. The gap shows up under concurrent small operations, which is what databases and container runtimes generate.

Why is my cloud database slower than my laptop?

Usually because the cloud volume is network-attached rather than local, so every read pays network latency and is capped by provisioned IOPS. Cloud providers offer faster tiers and local instance storage, and both cost more. Comparing a local NVMe laptop against a default network volume is comparing two different classes of hardware.

How long does an SSD last?

Long enough that capacity, not wear, is normally the reason to replace it. Drives are rated for hundreds of terabytes written; typical desktop use writes a few terabytes a year. Wear becomes a real consideration only for write-heavy workloads that rewrite the same data continuously, such as a logging or metrics database.

Sources

Share: