Mysql45 - 1 基础架构

 

 

 

Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,
以及所有的内置函数(如日期、时间、数学和加密函数等),
所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
 
存储引擎层负责数据的存储和提取。其架构模式是插件式的,
支持 InnoDB、MyISAM、Memory 等多个存储引擎。
现在最常用的存储引擎是 InnoDB,它从 MySQL5.5.5 版本开始成为了默认存储引擎。
你可以通过指定存储引擎的类型来选择别的引擎,
比如在 create table语句中使用 engine=memory, 来指定使用内存引擎创建表。
 
部分组件简述
 
分析器:
  分析器做词法分析、语法分析。
  词法分析:主要是将 输入的"select"这个关键字识别出来,这是一个查询语句。它也要把字符串“T”识别成“表名 T”,把字符串“ID”识别成“列 ID”。
  语法分析:会根据语法规则,判断你输入的这个 SQL 语句是否满足 MySQL 语法。不满足则报错:“You have an error in your SQL syntax”。
 
优化器:
  1、决定使用哪个索引
  2、有多表关联(join)的时候,决定各个表的连接顺序,比如:
    select * from t1 join t2 using(ID) where t1.c=10 and t2.d=20;
    既可以先从表 t1 里面取出 c=10 的记录的 ID 值,再根据 ID 值关联到表 t2,再判断 t2里面 d 的值是否等于 20,
    也可以先处理t2,再去关联t1。
    两种执行方法的逻辑结果是一样的,但是执行的效率会有不同。
 
 

 

 

 

 

 

 

会根据语法规则,判断你输入的这个 SQL 语句是否满足 MySQL 语法

posted on 2019-11-18 14:08  HB1  阅读(141)  评论(0)    收藏  举报

导航