You could store the database on a RAM disk, such as
ramfs. This could potentially risk the data, depending on the implementation, so you would need to design to compensate for this. One potential solution would be to have a readonly slave replicating to a RAM disk and the data there could be disposable.
MySQL Clustering (NDB engine) is designed to store data in memory. However, MySQL clustering is best suited for small datasets accessed with simple queries.
A favorite solution is memcached these days but this requires application architecture to support the technology.
This is a fairly big question. High Performance MySQL is a fantastic book that covers high level MySQL implementations.