数据库语句执行流程(查询原理)SQL

       SQL作为一种数据库编程语言,其执行过程大致为,终端上输入SQL语句 会传输到数据库服务器,然后SQL语句在服务器内经过解析器的检查和翻译,优化器的执行效率提升,在执行器中通过存储引擎提供的数据给出结果。详细过程如下:

        一、解析器过程

       解析器分为3个部分。第一部分,词法分析,检查SQL语句拼写是否正确,例如语句中的SELECT写成SELETC 系统就会提示拼写错误。第二部分,语法分析,检查SQL语句是否满足语法要求,例如语句中没有写查询哪个表 系统会提示没指定表。第三部分,语义分析,检查SQL语句中的访问对象是否存在,例如,列名写错系统会提示列不存在。

        二、优化器过程

         优化器负责进行SOL语句的优化重写,选出最优执行路径。例如有的数据库采用了基于代价的查询优化,每条SQL语句都会生成多个候选计划,且给每个计划计算执行代价 然后选择执行代价最小的计划。

         优化器分为三个部分。第一部分,查询重写,利用等价的关系代数运算来生成更高效的语句,如常量表达式化简、子查询优化、选择下推和等价推理等。第二部分,路径搜索,枚举出所有的候选执行路径,常见的有自底向上模式、自顶向下模式、随机搜索模式。第三部分,代价估算,选择开销最小、执行效率最高的路径。

        三、执行器过程

        执行计划在执行器进行处理,根据执行计划中的访问顺序访问表,索引等执行SQL语句,最后将执行结果反馈给客户端。

        执行器分为三个部分。第一部分,初始化,遍历执行树,进行初始化执行。第二部分,执行,通过从磁盘读取数据,根据执行计划完成操作。第三部分,清理初始化阶段申请的资源。

数据库语句执行流程(查询原理)SQL_第1张图片

        四、存储引擎

        存储引擎在SQL执行过程中起到了重要的作用,向上对接SQL引擎,向下对接存储介质,用于在数据库中读写数据,提供并发控制、高可用等能力。

数据库语句执行流程(查询原理)SQL_第2张图片

你可能感兴趣的:(数据库,sql)