网站设计需要在哪方面提升,沈阳男科医院排名10强名单公布,手机app开发步骤,dnf源码论坛目录
mysql服务层
介绍
服务管理和公共组件
备份
NOSQL,SQL接口
介绍
nosql
Parser模块(语法分析器)
介绍
词法分析
语法分析
示例
预处理器
引入
介绍
优化器
介绍
优化的必要性
基于成本的优化器
缓存
介绍
弊端 mysql服务层 介绍 数据库服务层是整个…目录
mysql服务层
介绍
服务管理和公共组件
备份
NOSQL,SQL接口
介绍
nosql
Parser模块(语法分析器)
介绍
词法分析
语法分析
示例
预处理器
引入
介绍
优化器
介绍
优化的必要性
基于成本的优化器
缓存
介绍
弊端 mysql服务层 介绍 数据库服务层是整个数据库服务器的核心,主要包括: 服务管理和公共组件nosql和sql接口解析器查询优化器缓存 服务管理和公共组件 备份 全量备份: 增量备份: NOSQL,SQL接口 介绍 分别对应于传统关系型数据管理和非关系型数据操作的不同需求 接口作用: 接收并转发用户发来的sql指令和命令(文本类型),返回结果它充当了用户客户端与数据库之间的中介角色 nosql 可以理解为非关系型数据库 大多数 NoSQL 数据库并不使用传统的 SQL 查询语言 是采用自己的查询语言或者接口来操作数据,更注重高性能和高并发 关系型数据库使用表格结构,而NoSQL 数据库支持更为灵活的结构 如文档、键值对、列族等 Parser模块(语法分析器) 介绍 语法分析器的主要作用是将客户端发来的SQL语句中的关键字和自定义字段进行提取、解析最终将SQL语句转换为一棵解析树 解析文本类型的指令 - mysql可以执行的内部表示分析的过程中包含词法分析和语法分析 词法分析 主要是对关键字进行提取 比如select / update / delete / create... 语法分析 主要判断SQL语句是否满足语法规则 如果语法错误则异出异常也就是我们常见的ERROR1064(42000):You have an error in your SQL syntax。 例如: 验证是否使用错误的关键字或者使用关键字的顺序是否正确等还会验证引号前后是否正确等 示例 预处理器 引入 mysql中不仅会验证和提取关键字,还会进一步检测查找的字段/表是否存在 介绍 根据一些 MySQL 规则进一步检查解析树是否合法 预处理器还会验证权限通常很快 优化器 介绍 负责选择最优查询执行计划的核心组件 -- 将解析树 - 查询计划 优化器的目标是根据查询的结构、数据分布、索引等信息选择一个能够高效执行 SQL 查询的计划以最小化查询的响应时间和资源消耗 优化的必要性 一条查询可以有多种执行方案 比如说,有两条查询结果都一样的sql,但其中一条把主键的匹配放在了左边,那么效率会更好一些,因为它会先去主键索引中匹配id1的记录,而不是先全盘扫描匹配name的记录 也就是可能会优化条件过滤的顺序 但也不要因为有优化器的存在就乱写,还是按照mysql匹配索引的规则写出高效的sql 基于成本的优化器 MySQL 的查询优化器是基于成本的优化器它尝试预测一个查询使用某种执行计划的成本并选择成本最小的一个 可以通过 SHOW STATUS LIKE Last_query_cost 值得知 MySQL 计算的当前查询的成本 缓存 介绍 MySQL的缓存主要的作用是为了提升查询的效率 当服务器接收到一个select查询语句时会先进入缓存查询当前SQL语句在缓存中是否存在缓存以key和value的形式存储key是具体的SQL语句value是结果的集合如果命中缓存直接返回结果 ; 无法命中缓存则进入分析器进行正常查询流程 弊端 value容易失效 当数据库中的数据发生变化时,缓存的 value 可能会变得不再准确 (对于查询缓存,如果涉及的表发生了任何变更相关的缓存数据就会被标记为失效)如果查询语句中稍微换一些查询的列值,就会形成一条记录,会占用大量资源 所以,mysql5.6版本之后缓存功能默认关闭,8.0被关闭 有参考 -- MySQL 查询执行的过程 - Java程序员进阶 - 博客园