MySql Proxy Cache (MPC) is a Software that runs between the Client (PHP, Java, crons, a MYSQL Client or any other Software using MySql) and the MySql Server and when there is a SELECT it transparently catches in memory the result, so posterior queries will be served from Memory without disturbing the MySql Server.
When a write query like INSERT, UPDATE, DELETE… appears if that affects the results cached the MPC transparently clears those cached queries affected.
This approach is a quick win for projects that are overloaded, or for projects where adding cache in the code is not possible or will costs many thousands of dollars in time of the programmers.
This approach is much better than the traditional putting cache in the Web Server’s code, because the cache on the Web side has a TTL (Time to Life) because is not possible to know when the data will be not valid because the database was updated.
As MySql Proxy Cache is the main listener for the connections, it always knows when an UPDATE to the data cached has been performed, and then it frees those results from the memory automatically.
Another good scenario is when your code has complex Queries with JOINS that take seconds or minutes to be responded from the MySql Server or Queries that are very inefficient or looking without indexes. MySql is efficient caching simple queries, but it is not caching JOINS. A JOIN that takes 30 seconds each time to be calculated from the MySql can be served in 0 seconds from the MySql Proxy Cache once has been cached. The MPC will automatically discover when data used by the cached JOIN has changed and remove from the Memory.
For CVS that do many queries for each request, like Drupal, WordPress, Joomla, etcetera this can turn sides, from having a very slow project that does not scale, to having a super-fast site, just in seconds without incurring in any additional Hardware or Coding investment.
For your Company this will save a lot of computing time, and a lot of money and headaches.