Mysql执行过程几个问题

几个问题?
  1. Mysql 的框架有几个组件,各个组件有什么作用?
  2. Mysql 的server层和存储引擎层各有什么作用?
  3. you have an error in your SQL syntax 这个报错是在词法分析里面还是在语法分析里面?
  4. 对于表的操作权限是在哪里进行?
1 答:

mysql有五个组件,分别是:
连接器: (客户端和服务端链接,用户名密码的校验)
查询缓存:(mysql 8.0之后默认删除此功能)sql语句(key) => 结果 (value)
分析器: 词法分析和语法分析(词法分析的结果,语法分析器会根据语法规则,判 断你输入的sql语句是否满足mysql语法。如果你的语句不对,就会收到“you havean error in you SQL syntax"提醒。
优化器:优化sql语句,是否有索引,链接方式
执行器:判断你对表有没有执行查询的权限,如果没有机返回没有权限的错误,如下所有(如果在查询缓存中命中缓存,查询也会在优化器调用 Precheck验正权限

2 答:

server层包括连接器,查询缓存,分析器(词法语法分析),优化器,执行器等,涵盖了mysql的大多数核心功能,以及所有内置函数(如日期、时间、数学),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
存储引擎负责数据的存储和提取。其架构模式是插件式的,存储引擎有innodb,myisam,memory。

3 答:

这条报错实在分析器中的语法分析报错的。

4 答:

执行器,执行器在执行之前会 precheck操作

你可能感兴趣的:(mysql)