《Mysql实战45讲》学习笔记第一讲 --- 基础架构

1、Mysql 基本架构示意图

《Mysql实战45讲》学习笔记第一讲 --- 基础架构

  i、连接层

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

连接命令: mysql -h -P -u -p。

查看连接状态:  show processlist

注意:(1)建议密码不直接跟在-p后,因为可能会导致密码泄露。(2)连接成功后,权限的修改影响的是再新建的连接。

(3)客户端太长时间没有动静时连接器会将它自动断开,这个时间是由参数waite_timeout控制,默认8小时。

(4)尽量使用长连接。为解决内存占用问题的两个方案:定期断开长连接、Mysql5.7以上版本,执行 mysql_reset_connection 进行连接的初始化。

ii、查询缓存

缓存的存储格式 key-value,key为查询语句,value为查询结果。

但是大多数情况下我会建议你不要使用查询缓存,为什么呢?因为查询缓存往往弊大于利。Mysql8.0版本以上无查询缓存功能。

关闭查询缓存的配置方式:  query_cache_type = DEMAND, 若明确需要使用查询缓存的语句使用SQL_CACHE 显示指定。

例如  select sql_cache * from T where id=10;

iii、分析器 ---要做什么

 先做“词法分析”:识别 关键字

再做“语法分析”:判断sql语句是否符合Mysql语法。

iiii、优化器  -- 该怎么做

多个索引时决定使用那个索引,多表关联时觉的各个表的连接顺序。

iiiii、执行器

先判断是否对该表有相关权限。

查询的过程是从第一条开始做遍历查询,判断是否符合条件。

引擎扫描行数跟rows_examined并不是完全相同的