From: Michael Widenius Date: February 18 2009 1:39pm Subject: re: comments and query cache List-Archive: http://lists.mysql.com/internals/36266 Message-Id: <18844.3968.649391.1736@narttu.mysql.fi> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi! >>>>> "Eric" == Eric writes: Eric> Hi All- Eric> AFAICT, query comments are used as part of the hash key for query cache (at Eric> least in 5.0). Is this intentional? Still the case in newer versions of Eric> mysql? Yes; It's mainly for speed but also because comments can affect the way queries are executed (if you use optimizer hints) Eric> I have a patch (attached) to strip comments before checking and storing the Eric> query into the query cache but wanted to see if this was a reasonable way to Eric> do it. Also, I couldn't find a very reasonable function to strip comments. Eric> (The one in innobase/hash/hash0hash.c seemed the best, but I imagine it is Eric> not fit to include so I copied it just to get my proof-of-concept working Eric> until/if something better is decided.) Don't know of any other function to do that. Eric> If this seems useful and reasonable, is there a better way to get the Eric> comments stripped? Should I implement my own? (Should be able to be done Eric> in the existing char* without allocating any new memory, right?) If you *only* strip safe comments (not using the /*!...*/ syntax you can strip it in the original memory. Eric> Does Eric> InnoDB (what we use) or any other engine depend on the comments in any way Eric> (I know oracle puts query hints in there)? How should this behavior be Eric> enabled since I imagine not everyone will want the runtime v. cache hit Eric> tradeoff. ./configure option? my.cnf? a dynamic variable? You should have this either as a dynamic variable or a connection option. This is to not cause an extra parsing overhead in the case where comments are static for the query. Regards, Monty