对于mysql的query_cache认识的误区(二)

2014-11-24 13:59:22 · 作者: · 浏览: 2
ted. We
also store this length, in case current database is changed during
execution. We might need to reallocate the 'query' buffer
*/
char *len_pos = (query + packet_length + 1);
memcpy(len_pos, (char *) &thd->db_length, sizeof(size_t));

thd->set_query(query, packet_length);

/* Reclaim some memory */
thd->packet.shrink(thd->variables.net_buffer_length);
thd->convert_buffer.shrink(thd->variables.net_buffer_length);

return FALSE;
}这个方法在一开始就会对query进行处理(代码第4行),将开头和末尾的garbage remove掉。



看到这里,我们基本已经明了了,mysql会对输入的query进行预处理,将空格等东西给处理掉,所以不会开头的空格不会影响到query_cache,因为对mysql来说,就是一条query。