Cache all mysql table
Certain database engines do support pinning objects to cache, Oracle and MS-SQL to name a couple. MySQL does not have this option, as far as I know. 

On the other hand I cannot think of many use cases for this option, as modern database systems are very good at managing cache. MySQL offers block caching with an LRU algorithm through the InnoDB storage engine. 

There is also an in memory storage engine, but there is no easy and efficient way replicate changes back to disk. 

There are complete in-memory databases out there if you want everything in RAM, including MySQL Cluster. 

On a sidenote, in practical use there is a trade-off between I/O and CPU resources. More cache means less I/O but more CPU is consumed, and there is a real possibility of introducing new bottlenecks.