数据库是由一个个文件组成的(一般是二进制文件),想要对这些文件进行select insert等操作,则需要通过数据库实例来完成对数据库的操作
1.连接器:连接器负责跟客户端建立连接、获取权限、维持和管理连接,连接的用户过多,会报oom
2.查询缓存:mysql8之前,做一次查询的时候,会在内存中存取一个kv,记录当前查询的sql和结果,如果查询的时候有直接返回,但是一张表,有了更新之后,所有的查询都会失效,mysql8之后取消了查询缓存
3.分析器:对一条sql语句做具体的分析,比如查询会有select 后面是查询的具体字段 from之后是表 where后面是条件,可能from之后表没有或者select字段不对都会直接返回错误
4.优化器:对sql做出具体的优化,比如会选择哪个索引,left join的时候会选择小表驱动大表等
5.执行器:对语句去做具体的执行,比如对一个表做查询,如果没有索引,id=2,从第一行开始向下查询直到最后一行,有索引就会查询所有为2的然后返回
6.存储引擎:就是具体的常见的innodb mysam这种
备注:参考极客时间MySQL45讲做的笔记