Mysql高级之Mysql各个组件介绍(总结)

Mysql各个组件

  • 连接器
  • 查询缓存
    • 可使用的参数
  • 分析器
  • 优化器
  • 执行器

连接器

1.连接器用来管理连接和进行权限验证
2.一个用户成功建立连接后,即使用管理员的账号对这个用户的权限进行了修改,也不会影响已经存在连接的权限,新连接才可以用新权限
3.建立连接的过程通常比较复杂,所以尽量使用长连接
4.Mysql执行过程临时使用的内存是管理在连接对象里面的

查询缓存

1.之前执行的结果可能会以key-value对的形式直接缓存在内存中,key是查询的语句,value是查询的结果
2.查询缓存的失效非常频繁,只要有一个对表的更新,这个表上所有的查询缓存都会被清空

可使用的参数

query_cache_type = DEMAND  //对于默认的SQL语句都不使用查询缓存
select SQL_CACHE * from T from T where ID = 10	 //显式的指定SQL语句使用查询缓存
------------Mysql8之后就没有查询缓存 我认为没有也行,可以加缓存中间件------------------------

分析器

1.先做词法分析,识别出里面的字符串分别是什么,代表什么
2.语法分析,判断你输入的词是否满足Mysql语法

优化器

1.优化器是在表里面有多个索引的时候,决定使用哪一个索引,或者在一个语句有多表关联的时候,决定各个表的连接顺序
2.分析器是告诉你应该做什么,优化器是告诉你应该怎么做

执行器

1.用来操作文件系统,执行语句
2.开始执行的时候,会判断你有没有执行的权限,如果没有,就会返回没有权限的错误
3.执行的时候,先取出满足条件的第一行(无索引时取表的第一行),然后循环的取满足条件的下一行

你可能感兴趣的:(笔记)