This means that almost all the memory is used by the kernel to cache data. You have probably almost idle system, so it doesn't matter so much, but to optimize it, you should look at the mysql config...
If you think you can benefit from query-cache, enable it and give it for example 128 MB. Then you can check in mysql how it is utilized. If you run mostly SELECT queries and not many INSERT/UPDATE, the query cache may be good for you. It very rarely causes issues, so you can safely leave it enabled.
Then if you are using MyISAM storage engine, so should enable some memory via kay_buffer variable. If using InnoDB, the general advise is to give 50-80% of available memory to innodb_buffer_pool_size (if this is dedicated mysql server). Mysql and InnoDB know better what exactly to cache than the linux kernel.
For freeing mysql (read) caches, I think only mysql restart helps. To free system caches, use command:
echo 3 > /proc/sys/vm/drop_caches