首页 > 数据库 >sql查询语句流程

sql查询语句流程

时间:2024-05-05 16:33:41浏览次数:24  
标签:语句 缓存 sql 查询 SQL 执行

  • 连接器:建立连接,管理连接、校验用户身份
  • 查询缓存:查询语句如果命中查询缓存则直接返回,否则继续往下执行
  • 解析 SQL,通过解析器对 SQL 查询语句进行词法分析、语法分析,然后构建语法树
  • 执行 SQL:执行 SQL 共有三个阶段:
  • 预处理阶段:检查表或字段是否存在;将 select * 中的 * 符号扩展为表上的所有列
  • 优化阶段:基于查询成本的考虑, 选择查询成本最小的执行计划
  • 执行阶段:根据执行计划执行 SQL 查询语句,从存储引擎读取记录


标签:语句,缓存,sql,查询,SQL,执行
From: https://www.cnblogs.com/52hadoop/p/18173608

相关文章

  • mysql执行update语句流程
    客户端发送更新命令到MySQL服务器,经过处理连接、解析优化等步骤;Server层向InnoDB存储引擎要id=1的这条记录;存储引擎先从bufferpoll中查找这条记录,有的话直接返回,没有则从磁盘加载到bufferpoll中然后返回;Server层执行器修改这条记录的name字段值;存储引擎更新修改到内存中;存储......
  • Mysql中的事务
    事务的四大特性:特性解释原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。一致性(Consistency)事务发生前后,数据的完整性要保持一致。隔离性(Isolation)隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的......
  • 如何使用ISqlSugarClient进行数据访问,并实现了统一的批量依赖注入
    仓储层当前有接口IRepository<T>抽象类 BaseRepository<T>业务逻辑层有抽象类BaseBusiness<M,E>接口IBusiness<M,E>,其中使用ISqlSugarClient,其中还有E表示BaseEntity,M为BaseDto请用C#给出一个案例,支持不同表对应不同的业务逻辑层,然后不同仓储实例,不同表的业务,都实现......
  • 解析mysql奇葩语句
    首先看看完整的表如下图那么看看一个比较奇葩的语句select*fromuserswherename='aa'='bb'这个语句为啥能执行成功以及为什么打印出了除了两个aa之外的所有行数据呢。我们来解释一下原理。当我们使用where语句的时候,where是会一行一行的匹配的,同时where的执......
  • 视图查询优化-不带条件
    视图查询优化-不带条件sqlselect/*+VIEW_FILTER_MERGING(1)NO_USE_CVT_VAR*/v.account_number,v.bill_id,v.account_id,v.bill_line_id,v.bill_number,v.business_type,v.business_type_sub,v.EVENT_ID,v......
  • hive on spark 优化-SQL层面
    HiveOnSpark调优本篇博客将从hiveonspark的SQL层面,来对任务做一些优化。下面的优化,从这几个方面来讲:Group、Join、并行度、小文件。Group、Join$\color{ForestGreen}{小提示:}$Group和Join的不同之处在于:Group需要ReduceJoin可以没有Reduce其实无论是Group还是Joi......
  • 复杂sql优化一例
    sqlinsertintoregister_book_tmp(org_code,org_name,project_number,project_name,product_num,product_name,detail_option,market_yn,asset_number,asset_name,......
  • 如何选择配置 MySQL innodb_log_file_size
    配置InnoDB的redo空间大小是写密集型工作负载最重要的配置选项之一。不过,这需要权衡利弊。配置的redo空间越大,InnoDB就能更好地优化写IO。不过,增加redo空间也意味着在系统断电或因其他原因崩溃时需要更长的恢复时间。 对于特定的innodb_log_file_size值,要预测系统......
  • 构建包含mysql和redis服务的docker镜像
    直接上dockerfile代码1FROMcentos:centos7.9.20092RUNyuminstall-ywget&&\3wgethttps://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm&&\4yum-ylocalinstallmysql80-community-release-el7-11.noarch.rpm......
  • MySQL 数据库自增主键生成的优缺点
    MySQL数据库中使用自增主键(AUTO_INCREMENT)作为表的主键有以下显著的优点和缺点:**优点**:1.**简化开发**:开发人员不需要手动指定每条记录的唯一标识,减少了出错的可能性。2.**性能优化**:自增主键通常会导致数据在物理存储上近乎顺序地排列,这能够提升基于主键的查询效率,特别......