MySQL有哪些模块

MySQL分为连接器,分析器,优化器,执行器,还有相应的引擎层。

           1. 连接器

            负责管理MySQL的连接,为每个连接返回相应的权限,连接建立好之后再对这个用户的权限进行修改,对用用户的连接是感知不到的,下次连接时才会生效。

           2.分析器

           负责分析相应的语法是否符合规范,MySQL内部的表名,列的字段都有存储,如果访问了表不存在的字段,在这个阶段就会报错的,它将一个SQL语句分析出来,哪些是关键字,哪些是表的名字,列的名字。

          3.优化器

           负责计算这个语句所需要的成本,算出来自己觉得最优的方案,当然这个方案不一定是最好的,比如它可能会错选索引等等。

          4. 执行器

          执行器会调用相应的接口执行相应的操作,调用之前会查有没有这张表的相应权限,没有的话就返回一个权限错误,当然如果是从缓存中查询的,查询结果返回之前也会做权限的验证。

         5.MySQL缓存

        MySQL会把最近执行过的语句当做key把执行结果当做value缓存起来,8.0以下应该是默认开启的,但是还是不开启得好,以为对一个表的改动会导致与这个表相关的缓存全部失效,8.0以后就移除了缓存。较低的版本你可以通过query_cache_type为DEMAND,这样你的查询语句如果没有指定缓存它是不会调用的,可以通过select SQL_CACHE * from  查询后面加上SQL_CACEH就行了。

          

猜你喜欢

转载自blog.csdn.net/A1028151949/article/details/88044878
今日推荐