因为客户端发送过来的只是一段文本字符串,因此MySQL服务器还须要对该文本字符串举行解析,这个解析过程就是在分析器中完成的。分析器对客户端发过来的SQL语句举行分析,包括预处理与解析过程,在这个阶段会解析SQL语句的语义,并举行关键词和非关键词举行提取、解析,并创建一个内部数据结果(解析树)。具体的关键词包括不限定于以下:select/update/delete/or/in/where/group by/having/count/limit等。假如分析到语法错误,会直接给客户端抛出异常:ERROR:You have an error in your SQL syntax.。除了提取关键词外,还会对此中的表举行校验,假如不存在该表,同样也会报错:unknown column in field list.。通过了分析器,那么就说明客户端发送过来的文本字符串是符合SQL标准语义规则,之后MySQL服务器就要开始执行SQL语句了。
2.3.4 优化器