You’ll notice that our earlier guide on MySQL optimization disabled MySQL Query Cache. Various WordPress Plugins exist for database caching, which are different from the thing we are talking about. Our discussion demands to tweak my.cnf
file which is usually located at /etc/my.cnf
in case of Ubuntu, Debian etc distro. The WordPress plugins decrease the count of queries to the database by caching queries in temp files in the cache directory which is usually /wp-content/tmp/
. In other words, to tweak this setting, first we need to run WordPress at minimum on a cheap VPS, like VPSdime or a standard server from BlueHoststandard server from BlueHost. The server does matter. A dedicated server with sufficient RAM and good hard disk will predictably translate the software settings when compared with a cheap virtual server or cloud server.
Regardless of the type of server (virtual server, cloud server, dedicated server), the properly configured query does improve the speed of page loading. The reason we kept the MySQL Query Cache settings in our earlier guide is for ensuring stability. A too much big query cache size will lead to performance degradation as there will be cache overhead and locking. The insert, update, delete modifications to a table will flush the query cache. In general, even a MySQL query cache size of 150 MB is too big. The MySQL query cache can be the bottleneck instead of helping when we have many CPU cores. For this reason, the MySQL query cache by default is now suggested to off unless proven useful for our need. So it is important to know that the MySQL query cache is on and the system can be unstable.
When the database storage engine is InnoDB, then you may try the query cache with this settings:
---
1 2 3 4 | query_cache_type = 1 query_cache_limit = 256K query_cache_min_res_unit = 2k query_cache_size = 80M |
Save the changes and restart MySQL :
1 | service MySQL restart |
Load some webpages on your website and wait for 5-15 minutes. Login to the MySQL command-line interface :
1 | mysql -u root -p |
Issue the following command :
1 | SHOW STATUS LIKE "qcache%"; |
You’ll get a chart like this :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | mysql> SHOW STATUS LIKE "qcache%"; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 101806856 | | Qcache_hits | 578 | | Qcache_inserts | 830 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 228 | | Qcache_queries_in_cache | 745 | | Qcache_total_blocks | 1504 | +-------------------------+-----------+ 8 rows in set (0.00 sec) |
There are articles like this one and this one from Percona which you will help to work with Query Cache. Deactivate and uninstall the plugin after usage.
Tagged With mysql query_cache_size wordpress , mysql query cache optimizer , wordpress database query cache plugin , wordpress query_cache_size