zoukankan      html  css  js  c++  java
  • MySQL中的语法怎么执行的

    对于测试行业的小伙伴来说,看到“select * from table where ...”应该再熟悉不过了,那么是否明白这个语句到底是怎么执行的呢?

    首先要明白这个语句是由客户端向服务器发送的,那么服务器中是由负载均衡(Nginx)接收后分配给到了Tomcat,其次Tomcat才会从mysql中捞取数据

    下面说下mysql中到底是怎么的运行规则,上图:

     通过这个图大家应该可以看出基本的步骤了,下面详细说下

    1、客户端发起一个查询请求后会经过连接器和mysql进行连接

    2、查询缓存,如果在缓存中查找到了数据那么就会直接返回,如果没有查询到,那么就会到解析器,这里说明下缓存中的数据,只要表一更新,那么缓存中的数据就会清空

    3、解析器会对这条sql语句进行解析,判断是否有语句错误,如果错误则返回错误,如果正就到优化器

    4、经过了解析器之后,mysql就知道你想要怎么做了,那么就会到优化器中进行优化,具体怎么执行才会更加高效,比如表中有哪些索引,应该怎么用这些索引,多表连接查询的表顺序等

    5、通过优化器之后,就会到执行器,执行器就会检查权限,如果权限不通过则会返回对应错误,其次会想搜索引擎索要数据,返回的数据如果设置的缓存那么就会放到缓存中

    以上就是整个的搜索过程了,欢迎各位同行指正

  • 相关阅读:
    C++学习笔记27,虚函数作品
    HDU
    POJ 2524 Ubiquitous Religions
    HDU-3839-Ancient Messages(DFS)
    thinkphp 删除所有缓存 Rumtime 以及 Html 静态缓存
    [AngularJS] Design Pattern: Simple Mediator
    [Javascript] Add a browser build to an npm module
    [Angular 2] ngrx/store
    [Typescript] Introduction to Generics in Typescript
    [AngularJS] angular-md-table for Angular material design
  • 原文地址:https://www.cnblogs.com/LCboss/p/13095508.html
Copyright © 2011-2022 走看看