MySQL实战学习笔记

时间:2021-08-20
本文章向大家介绍MySQL实战学习笔记,主要包括MySQL实战学习笔记使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

01 | 基础架构:一条SQL查询语句是如何执行的?

基础架构

  • 大体来说,MySQL分为Server层和存储引擎层两部分。

    • Server 层包括连接器、查询缓存、分析器、优化器、执行器等

      • 涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)

      • 所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等

    • 而存储引擎层负责数据的存储和提取

      • 其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。

      • 不同的存储引擎共用一个 Server 层

      • 现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。

        • 执行 create table 建表的时候,如果不指定引擎类型,默认使用的就是 InnoDB。

        • 也通过指定存储引擎的类型来选择别的引擎,比如在 create table 语句中使用 engine=memory, 来指定使用内存引擎创建表。

        • 不同存储引擎的表数据存取方式不同,支持的功能也不同

  • 连接器:负责跟客户端建立连接、获取权限、维持和管理连接。

  • 查询缓存:查询请求先访问缓存(key 是查询的语句,value 是查询的结果)。命中直接返回。不推荐使用缓存,更新会把缓存清除(关闭缓存:参数 query_cache_type 设置成 DEMAND)。

  • 分析器:对 SQL 语句做解析,判断sql是否正确。

  • 优化器:决定使用哪个索引,多表关联(join)的时候,决定各个表的连接顺序。

  • 执行器:执行语句,先判断用户有无查询权限,使用表定义的存储引擎。

原文地址:https://www.cnblogs.com/cmyDS/p/15166255.html