数据库架构
14.说说 MySQL 的基础架构?

在这里插入图片描述
MySQL逻辑架构图主要分三层:
- 客户端:最上层的服务并不是MySQL所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等等。
- Server层:大多数MySQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。
- 存储引擎层:第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取。Server层通过API与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。
15.一条 SQL 查询语句在 MySQL 中如何执行的?
- 先检查该语句是否有权限,如果没有权限,直接返回错误信息,如果有权限会先查询缓存 (MySQL8.0 版本以前)。
- 如果没有缓存,分析器进行语法分析,提取 sql 语句中 select 等关键元素,然后判断 sql 语句是否有语法错误,比如关键词是否正确等等。
- 语法解析之后,MySQL的服务器会对查询的语句进行优化,确定执行的方案。
- 完成查询优化后,按照生成的执行计划调用数据库引擎接口,返回执行结果。
存储引擎
16.MySQL有哪些常见存储引擎?

主要存储引擎
主要存储引擎以及功能如下:
功能MylSAMMEMORYInnoDB存储限制256TBRAM64TB支持事务NoNoYes支持全文索引YesNoYes支持树索引YesYesYes支持哈希索引NoYesYes