The first thing to recognize is that query caching makes sense only if your web application
is making lots of identical queries and retrieving identical datasets therefrom. If your app
uses prepared statements, then even so the cache won't operate. It's a good idea to review
the principle on which the query cache works: seehttp://dev.mysql.com/doc/refman/5.0/en/query-cache.html
I note that you are reserving a bit over 250 MiB for the cache. How much memory does your
server have going spare? If things get busy, it could be that this cache is hogging memory
that would be better used for other things; if anything causes your cache to get swapped out,
then the whole object will be defeated.
I would suggest playing with the values a little and trying remote speed tests.
Thanks, I'll look further into it.