mysql基础架构,旧

旧,mysql

马哥视频----mysql事务和隔离级别 sql

MySQL基础架构图以下 缓存

 

 链接管理器(面对用户的一端,接收用户链接并创建链接)
     1. 接受请求: 监听某个套接字上接收客户端请求,接收下来后建立一个线程与响应 
     2. 建立线程:线程还有线程管理器专门负责相关功能,为了加速线程建立(由于在用户链接很是多且很是频繁的话线程频繁建立并销毁是至关销毁资 源)因而有了线程重用的概念,一个用户链接进来退出了,线程没有被销毁而是直接放到空闲线程池当中,而
                         新的用户请求到来后,直接给它拿一个空闲线程响应 。安全

                           ( 每一个用户都有一个线程,每一个用户本身的全部操做都在它自身线程地址空间内完成,而cpu是有限的也就意味着每一个用户发起的操做只能轮流在cpu上执行,而某个一个查询的速度很是很是慢,执行速度又很是慢,结果致使一个用户的查询虽然很单,
                           可是执行起来却任然很慢,由于此行人的没结束, 因此像这些每个查询操做每个用户的线程最终都要轮流在cpu上执行的,而这些轮流执行的过程颇有可能受到其余用户线程的影响)服务器

     3.验证用户是否能够连入mysql服务器:
     4.创建安全链接:架构

mysql协会是明文的(若是须要机密性的,链接管理器可能还会建立安全链接)优化


查询缓存(若是缓存有结果,那么从高速缓存中直接返回用户的查询结果,查询缓存只跟读操做有关)
分析器(若是缓存没命中,因而交由分析器作分析,分析的结果若是发现缓存中任然有结果还能够交由缓存,直接从缓存中返回结果,不然交给优化器完成优化器
优化器 (完成优化)
执行引擎
储存引擎(完成语句执行)spa

 

 

当咱们发起查询操做后,mysql服务器会负责解析每个查询,而且会在mysql进程内部建立一个解析数,在这个解析数执行各类优化,并计算出最优执行路径,
若是查询结果是肯定性的(像 select current_time() 查询当前时间的结果 是非肯定性的),将缓存下来线程

 

若是没有缓存直接交给解析数处理
若是有缓存没一次查询以前都须要查询缓存是否是命中了,若是没有交给解析数视频

相关文章
相关标签/搜索