Mysql学习笔记(一)Mysql的简单执行流程

文章介绍了MySQL的两大组成部分——server层和存储引擎层,详细解析了SQL语句从连接、分析、优化到执行的过程,并指出当出现Unknowncolumn错误时,问题通常出现在分析器阶段。此外,文中还概述了各组件在查询中的作用。
摘要由CSDN通过智能技术生成


前言

工作中是否经常经常在sql查询中遇到类似Unknown column ‘xxx’ in ‘where clause这种报错,本文将带你简单了解sql语句在系统是的执行流程,找到问题的根本原因。

一、MySQL的组成部分

MYSQL内部可大致分为server层存储引擎层两部分。

1. server层

Server层包括连接器、查询缓存、分析器、优化器、执行器、内置函数(如日期、时间、数学和加密函数等)、存储过程、触发器、视图等相关服务组件。

2. 存储引擎层

存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多种存储引擎。

二、SQL语句的执行流程

1. 执行流程

  • 客户端通过连接器连接mysql服务,验证身份信息和权限信息;
  • 分析器对sql语句进行词法、语法检查(包括字段-表-库是否存在);
  • 优化器根据成本计算得出采用哪些索引,连表顺序;
  • 执行器判断是否有表权限,之后访问引擎接口,读出数据;

Mysql45讲

2.定位错误的出现位置

由此可见当前错误一般出现在分析器中,原因是字段或表名称不存在,无法通过分析器返回错误。


总结

本文主要简单总结了MYSQL的查询执行流程,MYSQL组成部分在查询中的作用。如有错误或疑问,请各位大佬前辈们指正。

[参考文档]:MySql45讲

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值