I was having a issue getting MySQL query cache to work. No matter what settings, I couldn't get the queries to cache on certain tables.
Once investigated. It turns out that MySQL 5.5 won't cache a query that has a table with a "dash" in it like.
Select id FROM `table-name` WHERE `id` = 1;
However you will see Qcache_queries_in_cache, and Qcache_hits works as desired when you rename your table without the dash.
Select id FROM `tablename` WHERE `id` = 1;
Underscores also works.