- MySqlProxyCache (MPC) is put in front of the MySql Server, between the Clients (like PHP websites) and the MySql Server
- MPC analizes the Queries and transparently caches the queries SELECT
- MPC detects INSERT/UPDATE/DELETE… and what are the affected objects and transparently removes Queries that were using those objects and so are no longer valid, from the cache
- As a result, you can avoid using imprecise TTLs and no need to implement other caches in Code. The MPC always knows which data is valid
- MPC uses a dynamic memory model. Unlike other Softwares that assign a fixed block size for the cached data (like 1 MB per query) and they waste a lot of memory, MPC dynamically stores the required memory for the results, no bytes are wasted, and no results are kept out because being too larger
- When MPC analyzes the queries it detects the use of real time functions and Server vaiables in SELECTs like Date/Time functions (NOW(), DAY, YEAR(), SYSDATE(),TIMESTAMP()…), functions like UUID() and other uses like LAST_INSERT_ID, CONNECTION_ID and those Queries are never cached.
- Queries using User-Defined variables and PREPARED STATEMENTS are detected and not cached.
- All these analysis is also applied to JOINS
- It allows to Debug and see all the conversation between the Client side and the MySql Server side.
- Queries can be optionally written to a log file
- MPC can be used as a Bridge between different networks
- MPC is tested to work fast with popular CMS like WordPress, Drupal, etc…
- MPC is compatible with MySql and derived forks
- It detects queries that are the same with minor differences. Repeating queries is very usual and this feature saves you many hours of development.
Examples of queries that are detected as the same:
SELECT * FROM usersbase SELECT * FROM usersbase; SELECT * FROM `usersbase`; select * from usersbase; SELECT * FROM usersbase SELECT * FROM USERBASE