What Limits MySQL’s Performance?How to Select CPUs for MySQLWhich Is Better: Fast CPUs or Many CPUs?CPU ArchitectureScaling to Many CPUs and CoresBalancing Memory and Disk ResourcesRandom Versus Sequential I/OCaching, Reads, and WritesWhat’s Your Working Set?Finding an Effective Memory-to-Disk RatioChoosing Hard DisksSolid-State StorageAn Overview of Flash MemoryFlash TechnologiesBenchmarking Flash StorageSolid-State Drives (SSDs)Using RAID with SSDsPCIe Storage DevicesOther Types of Solid-State StorageWhen Should You Use Flash?Using FlashcacheOptimizing MySQL for Solid-State StorageChoosing Hardware for a ReplicaRAID Performance OptimizationRAID Failure, Recovery, and MonitoringBalancing Hardware RAID and Software RAIDRAID Configuration and CachingThe RAID stripe chunk sizeThe RAID cacheStorage Area Networks and Network-Attached StorageSAN BenchmarksUsing a SAN over NFS or SMBMySQL Performance on a SANShould You Use a SAN?Using Multiple Disk VolumesNetwork ConfigurationChoosing an Operating SystemChoosing a FilesystemChoosing a Disk Queue SchedulerThreadingSwappingOperating System StatusHow to Read vmstat OutputHow to Read iostat OutputOther Helpful ToolsA CPU-Bound MachineAn I/O-Bound MachineA Swapping MachineAn Idle MachineSummary