本篇笔记将为大家介绍 SequoiaDB 巨杉数据库查询 SQL 语句的执行过程,以及查询语句执行过程中实例层、协调节点、编码节点、数据节点各自承担的功能。

应用程序或用户想要从数据库查询需要的数据,首先通过 API 或 client 端连接数据库,将查询 SQL 语句发给数据库,数据库解析查询 SQL 语句,执行完成后将结果返回给应用程序或用户。

首先看一下大家熟悉的 MySQL 数据库。

MySQL 总体分为两层:MySQL server层和 InnoDB 等存储引擎层。MySQL server层负责请求处理和数据计算,InnoDB 存储引擎层只负责存储数据。SQL 语句的大体执行过程为:client 端把查询 SQL 语句发给 MySQL server 层,server 层负责语法解析、语义解析、生成执行计划、执行SQL语句。前三个过程单独在 server 层完成。执行 SQL 语句时,需要与 InnoDB 层进行交互,将对应的数据加载到 server 层的内存中,最终的计算还在 MySQL server 层实现。

RDBMS 类型的数据库的 SQL 语句执行过程都是相似的,通过对 MySQL 数据库的了解,我们更容易理解 SequoiaDB 数据库的查询 SQL 语句执行过程。

根据 SequoiaDB 巨杉数据库官方给出的架构图可以看出:

SequoiaDB 巨杉数据库总体分为“计算实例层” 和 “分布式数据库层” 两层。和 MySQL 数据库相比,它使用 SequoiaDB 分布式数据库层替代 InnoDB。实例层支持MySQL、PGSQL、SparkSQL等类型的实例,用于语法解析、语义解析、生成执行计划。SequoiaDB 分布式数据库层包括协调节点、编目节点、数据节点三部分,用于数据存储和计算。

SequoiaDB 巨杉数据库的查询 SQL 语句的执行过程和 MySQL 大体一致,主要的区别在于执行 SQL 语句。下面详细介绍 SequoiaDB 数据库查询 SQL 语句的执行过程。

1) client通过user、password连接到 MySQL 实例层,将查询 SQL 语句发给 MySQL 实例层;2) MySQL 实例层对 SQL 语句进行语法解析、语义解析,并生成执行计划;3) MySQL 实例层将执行计划下发至协调节点;4) 协调节点收到执行计划后,进行解析,并从本地缓存或编目节点获取对应的集合信息;5) 协调节点将执行计划转发至集合所在的数据节点;6) 数据节点按照执行计划进行数据查询,并将结果返回给协调节点;7) 协调节点把结果汇总,传递给 MySQL 实例层;8) MySQL 实例层过滤后,将结果返回给 client。到此查询语句执行完成。从查询 SQL 语句的执行过程中,我们可以看到 SequoiaDB 执行查询 SQL 的关键要点:

  • MySQL实例层解析SQL,生成执行计划,几乎不参与计算。
  • 协调节点承接着与 MySQL 实例层、编目节点、数据节点的交互。
  • 数据节点承担数据计算和数据存储。

相信理解这一机制,会帮助大家更好地在查询类场景中应用好分布式数据库。

往期技术干货

巨杉Tech | 常见问题参数调优实践(数据库优化系列一)

社区投稿 | NUMA架构与数据库的一些思考(数据库优化系列二)你的数据库文件系统优化好了吗?(数据库优化系列三)分布式数据库的数据备份/恢复,这些你一定要了解社区投稿 | 巨杉数据库对接数仓数据实践与体验社区投稿 | SequoiaDB监控与开发实践分享巨杉Tech | 谈谈数据库内核调优

sql server查询历史进程_学习笔记 | SequoiaDB SQL查询语句执行过程相关推荐

  1. 『SQL Server 2000 Reporting Services学习笔记』(1)报表管理器的使用 与 通过角色分配配置安全性...

    『SQL Server 2000 Reporting Services学习笔记』(1)报表管理器的使用 与 通过角色分配配置安全性 __________________________________ ...

  2. mysql数据库查询语句过程_mysql(一) SQL查询语句执行过程

    mysql基础架构 示意图 首先 mysql  大概分为 server层 和 存储引擎层 两个部分, 引擎的架构模式是插件形式的,mysql支持多种引擎如 InnoDB.MyISAM.Memory 等 ...

  3. sql server重命名_在Linux上SQL Server中重命名逻辑和物理文件名

    sql server重命名 Each database in SQL Server contains at least two files i.e. Data file (*.mdf) and log ...

  4. .Net+SQL Server企业应用性能优化笔记3——SQL查询语句

    在上一篇文章中我们使用了几种方法来确定瓶颈,找到瓶颈,下面再回顾一下: LoadRunner压力测试+Windows计数器,这种方法主要是找出大概的性能问题是在哪台服务器,主要是哪个资源紧张. ANT ...

  5. java sql server连接字符串_关于Java:SQL Server的等效jdbc连接字符串

    我目前正在使用以下连接字符串连接到数据库(该数据库与ServerIP在同一服务器上): String constr ="Data Source=ServerIP,1433;Network L ...

  6. 一条SQL查询语句的执行过程,一张图说清SQL查询语句执行过程

    一张图说明 一条SQL查询语句的执行过程 一条sql语句从发送到数据库到它执行完成并返回结果,主要经历以下几个过程: 连接器->查询缓存(如果开启了查询缓存,则会经过这一步,但是大多数情况下都是 ...

  7. SQL Server 2005 高级程序设计 学习笔记(2)

    1.替代inner join, left join(*=), right join(=*)    select A.UserID, B.WorkFlowStatus from A ,B B where ...

  8. SQL Server调优系列基础篇(子查询运算总结)

    前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...

  9. SQL Server 2008/2012中SQL应用系列及BI学习笔记系列--目录索引

    SQL Server 2008中的一些特性总结及BI学习笔记系列,欢迎与邀月交流. 3w@live.cn  ◆0.SQL应用系列 1.SQL Server 2008中SQL增强之一:Values新用途 ...

最新文章

  1. antd 表单提交,文件和表单内容一起提交,表单校验
  2. 二叉树常用方法(一)
  3. java版b2b2c社交电商spring cloud分布式微服务:服务消费(Ribbon)
  4. 事务连接中断_一文搞懂分布式事务-CAP理论
  5. jetty优秀文章转载
  6. ios 获取控件高度
  7. Golang笔记——反射
  8. 使用Canvas扩展绘制动态ASP.NET Core Blazor气泡图
  9. mysql hibernate 延迟_在mysql数据库中,hibernate一对多的集合的延迟加载无效
  10. Oracle绑定变量分级(Bind Graduation)
  11. 数论 欧几里德算法
  12. win10搭建无盘服务器配置,win10电脑搭建无盘工作站
  13. Docker镜像与容器的常用操作
  14. iphonex屏幕尺寸html,三分钟弄懂iPhone X 设计尺寸和适配
  15. BIOS中英文对照表!
  16. java分号_java – 为什么这些分号不会产生错误?
  17. 适合学计算机用的机械键盘,什么机械键盘好用2017 LOL职业玩家用什么键盘好
  18. NTC热敏电阻电阻与温度之间的转换公式
  19. 初识RPC中间件zeroC ICE工具之iceca
  20. 全国计算机竞赛能保送清华北大吗,NOIP考试是什么?能保送清华北大是真的吗?...

热门文章

  1. matlab 条形图横坐标,Matlab条形图bar横坐标间距设置
  2. Linux下boost库的安装
  3. hp服务器如何ghost系统,惠普(HP)电脑安装不了GHOST系统的解决办法
  4. pp助手苹果版_再见!PP助手iOS端即将下线 曾是中国最大的苹果助手
  5. 【转】ABP源码分析十七:DTO 自动校验的实现
  6. 【转】.NET Remoting
  7. 【转】事务和锁机制是什么关系? 开启事务就自动加锁了吗?
  8. 【转】!!c#文件系统操作类继承关系图
  9. 【转】1.4异步编程:轻量级线程同步基元对象
  10. 终于找到了:NuGet 修改包路径