When we work with MySQL we are inevitably interacting with the filesystem in more ways than just storing data. We're requiring the filesystem to:
Operate on blocks of data as fast as possible to read and write log files
Store and process temporary tables for sorting larger tables that cannot be processed in-memory
Also provide redundancy in the case of hardware failure
If we can run our entire database in-memory then it will almost always be quick to respond, but for databases that are larger than the available system RAM, we need to tune the filesystem to perform at its best. In order to tune the filesystem and ensure optimal settings for our workload, we will apply the same testing methodology that was explained at the start of the chapter, except we will focus on the I/O resources. When running filesystem benchmarks be sure to run more than one, and preferably at least ten iterations so that a realistic average can be seen with outliers removed. To do this we can use...