At LinkedIn, my team runs a multi-primary MySQL system with roughly 20 billion rows across six tables and 15 TB of stored data. The tables aren't partitioned, and the system isn't sharded. Yet, our queries are still surprisingly fast. Most requests are small indexed lookups, and they repeatedly touch pages already in memory.
The system spans three regions, each with one primary and two local replicas.
One primary per region
Each instance has 32 cores, 256 GB of RAM, and 24 TB of disk. InnoDB's buffer pool caches data and index pages in memory, so frequently accessed pages can be read without fetching them from disk.
The hardware each MySQL instance runs on
Each slot represents one core of capacity.
8 × 32 GB RAM modules
We see about 10,000 SELECTs per second, reported as the mean across all three regions. The average query time is 0.48 milliseconds. We mainly serve point lookups or lookups on indexed columns. Each query touches only a small number of rows and pages, so the database doesn't need to read through billions of rows to answer a request.
Reads and writes over 24 hours
This workload mostly reads recent rows. Because our primary-key IDs increase over time, those rows tend to occupy nearby pages in InnoDB's clustered index, which stores rows in primary-key order. Secondary indexes follow their own key order. Repeated reads make those pages hot and useful to keep in the buffer pool; older history is rarely retrieved in this workload.
Reads favor recent rows
Our buffer-pool size is 100 GB, with a hit rate of 98.7%. That rate measures page accesses served from memory rather than from disk. Frequently accessed pages tend to stay in memory; less frequently used pages can be evicted as space is needed. This depends on page access and cache pressure.
Most reads stay in memory
Illustrative page reads: 99% memory · 1% disk.
Conclusion
This workload combines small indexed lookups with repeated reads of recent rows. Those reads reuse pages in the buffer pool, which helps explain the high cache hit rate and fast average query time.