zoukankan      html  css  js  c++  java
  • 面试刷题mysql1:一条sql语句是如何经过mysql的体系结构的?

    file

    mysql执行一条sql查询语句背后发生了什么呢?

    我是李福春,我在准备面试,今天的题目是:

    mysql的体系结构是怎样的?一条sql语句在mysql的体系结构中经历了什么?

    答:

    mysql体系结构

    mysql的题解结构可以分成3个部分。列举如下:

    mysql-client: 比如一个命令行,或者使用java的JDBC发送sql语句

    mysql-server: 分为5个部分

    连接器 (管理连接权限认证)
    查询缓存 (命中则缓存起来)
    分析器 (词法 语法分析)
    优化器 (执行计划生成,索引选择)
    执行器 (操作,返回结果)

    mysql-存储引擎: 负责存储数据,提供读写接口(建表的时候指定MyISAM,InnoDB , Memory)

    一条sql语句的执行过程

    一条sql语句在mysql体系中的流转过程:

    1,连接器: 首先打开命令行,指令:mysql -h({ip} -P){port} -u${user} -p ,输入密码。
    使用连接器连接服务端; 连接成功之后,权限修改不会影响当前连接,连接的有效期默认是8个小时;
    连接之后,执行过程中使用内存会持续增加,应该定时重置连接状态,防止oom;

    2,查询缓存:如果查询比较频繁,按照key,value的方式放入缓存,命中缓存则直接返回;
    如果更新比较频繁,建议不要使用查询缓存,query_cache_type=demand ,然后如果需要,可以在select后面带上 SQL_CACHE ; mysql8.0之后移除了查询缓存;

    3,分析器:解析语法和词法,如果语法错误,会直接给出提示;

    4,优化器:比如join语句执行方法的逻辑,如何选择索引等;

    5, 执行器:核对执行权限,调用存储引擎的接口,按照语法循环执行,返回结果集。 可以观察 row_examined ,引擎扫描行数。

    小结

    本节介绍了mysql的体系结构。

    然后跟踪了一条查询sql在体系结构中流转过程。

    file

    原创不易,转载请注明出处。

  • 相关阅读:
    Working with macro signatures
    Reset and Clear Recent Items and Frequent Places in Windows 10
    git分支演示
    The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1.
    Build website project by roslyn through devenv.com
    Configure environment variables for different tools in jenkins
    NUnit Console Command Line
    Code Coverage and Unit Test in SonarQube
    头脑王者 物理化学生物
    头脑王者 常识,饮食
  • 原文地址:https://www.cnblogs.com/snidget/p/12614449.html
Copyright © 2011-2022 走看看