select语句会走的case COM_QUERY判断
具体流程如下:
1.获取网络包数据,拿到查询语句,放入thd->query
alloc_query(thd, packet, packet_length)
2.先查询缓存,缓存命中直接返回结果,未命中则解析
功能集中在mysql_parse()函数中
mysql_parse(thd, thd->query(), thd->query_length(), &parser_state);
查询缓存,命中直接返回
query_cache_send_result_to_client(thd, rawbuf, length)
未命中,则进行sql解析,lex进行词法解析,yacc进行语法解析,生成解析树
然后调用mysql_execute_command函数进行优化和执行
mysql_execute_command(thd);