1、mysql可分为server层和存储引擎
1.1 server层:
连接器、查询缓存、分析器、优化器 、执行器、包含所有内置函数(日期,时间,数学、加密函数),所有跨存储引擎的功能都在此层,比如存储过程、触发器、视图等
1.1.1 连接器:
负责跟客户端建立连接、获取权限、维持和管理连接
mysql -h$host -P$port -u$user -p$password
备注:
a、sleep状态是连接完成,但没有后续操作,此连接就会处于空闲状态;
b、如果在连接过程中对当前用户的权限做了修改,也需要在断开重新连接之后此权限才生效;
c、长连接与短连接:长连接使用过多会出现mysql内存占用过高导致mysql异常重启的情况,解决方法可以是:定期断开长连接,5.7及以上,则可以通过mysql_reset_connection来重新初始化连接缓存,这个过程不会重连和重新做权限验证,但会恢复到刚刚创建完的状态;
1.1.2 查询缓存:
a. 建立连接之后便会去查询缓存,缓存会以key-value对的形式保存,key是查询语句,value是查询结果。若查询命中缓存,则不需要后续复杂的逻辑。
b. 但查询缓存的失效特别频繁,只要有对一个表的更新,那么此表的缓存就会全部清空,因此不建议使用查询缓存。除非是表的数据变动频率不高的,如系统配置表
c.5.8.0已完全将查询缓存模块删掉
1.1.3 分析器:内建解析树,数据表和数据列是否存在, 别名是否有歧义,如果通过建立一个新的解析树,再提交给优化器
a.词法分析、语法分析
1.1.4 优化器
优化器决定最优sql执行顺序,如最优索引,join表的顺序等
1.1.5 执行器
查询对当前表是否有执行权限,若有权限,打开表,根据表引擎接口执行sql
1.2 存储引擎负责数据的存储和提取,包含InnoDB,MyISAM,Memry等,mysql5.5.5版本以上默认InnoDB 备注:
1、wait_timeout针对非交互式连接;
interaction_timeout针对交互式连接;
通过mysql客户端连接数据库是交互式连接,通过jdbc连接数据库是非交互式连接;
2、执行完成后写入缓存 问题:
1、为什么对权限的检查不在优化器之前做?
答:触发器是在执行器阶段确定的
2、我创建了一个没有select权限的用户,执行select * from T where k=1,报错“select command denied”,并没有报错“unknown column”,是不是可以说明是在打开表之后才判断读取的列不存在?
答:这是一个安全问题,当既没有查询权限,where条件的字段不存在时,未避免泄露太多信心,会直接判断无权限
3、分析器到查询缓存的那个箭头表示什么意思?
答:更新完回来失效缓存;
4、基本架构图中,分析器指向了查询缓存,是这时候把KEY放入缓存的吗?执行器不指向缓存Value是什么时候放入缓存的?
答:其实执行完会写入,避免图乱,箭头去掉了,文中:执行完成后,结果写入查询缓存;

学习笔记:非原著

最新文章

  1. [转]iOS开发中@property的属性weak nonatomic strong readonly等介绍
  2. 基于TCP和多线程实现无线鼠标键盘-Socket(2)
  3. 分享25个CSS前端网页设计常用技巧
  4. 深入理解ThreadLocal(二)
  5. ios开发之多线程资源争夺
  6. CentOS6.2编译安装codelite5.3
  7. mac终端命令简介
  8. 冷市攻略:Listo 教你 25 今天的社会 Swift 语言 - 02 Swift Tour
  9. POJ 2411 Mondriaan's Dream:网格密铺类 状压dp
  10. 4337: BJOI2015 树的同构
  11. SQL Server 跨服务器查询
  12. Ubuntu 16.10 server 相关
  13. php SQL 防注入的一些经验
  14. Linux学习笔记13—Vi编辑器的学习
  15. C# 写App.config配置文件的方法
  16. python 函数学习
  17. 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  18. git本地分支和远程分支改名
  19. MultipartFile+nio上传文件
  20. Codeforces Round #313 D. Equivalent Strings(DFS)

热门文章

  1. spring security There was an unexpected error (type=Forbidden, status=403).
  2. 题解 P3166 【[CQOI2014]数三角形】
  3. 理解厂商前缀 -webkit- / -moz- / -ms- / -o-
  4. ZeroMQ的进阶
  5. [LOJ2288][THUWC2017]大葱的神力:搜索+背包DP+费用流+随机化
  6. 音频学习(一)-离线播放(AVAudioPlayer)
  7. [CSP-S模拟测试]:随(快速幂+数学)
  8. Mybatis传多个参数(三种解决方案) mapper.xml的sql语句修改!
  9. 错误 error: The following untracked working tree files would be overwritten by merge:README.md
  10. java poi 导入导出Excel xsl xslx