Most modern applications these days including popular CMS use databases. As databases grow in size it's taking more and more time to retrieve a single database record.
Keeping in mind that MySQL queries need to happen in terms of miliseconds for a page to load fast enough, at some point a website or specific sections of the website take more time to load.
The result of faster MySQL queries is a faster webpage loading time and tuning your MySQL server is a key factor in website optimization.
Most common technique of tuning MySQL servers is to cache results in RAM memory.
RAM memory is considerably faster than any persistent storage type (disk/SSD) and as databases grow in size over time we need to make sure we allocate enough memory for the MySQL server to run as fast as possible.
The default configuration MySQL configuration is usually enough for small websites, but every at least few months we should at least check if can improve the configuration.
For this purpose we can use the mysqltuner.pl script, which will access the MySQL server statistics since the last restart and based on that will output results in a more friendly format.
Mysql optimization part that is mostly done using mysqltunner application.
mysqltunner is a perl script that can run locally or on a remote server and allows you to optimize some of the values within the mysql configuration file.
When first running the script the current configuration variables and status data is retrieved and presented in a brief format along with some basic performance suggestions.
It supports most of the existing Unix versions on the market