登录
首页 >  数据库 >  MySQL

Mysql执行过程几个问题

来源:SegmentFault

时间:2023-01-21 15:13:14 473浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《Mysql执行过程几个问题》,介绍一下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执行过程几个问题》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布数据库相关知识,快来关注吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表