【赵渝强老师】OceanBase OBServer节点的SQL层

简介: OceanBase OBServer节点的SQL层将用户的SQL请求转化为对Tablet的数据访问。整个处理流程包括Parser、Resolver、Transformer、Optimizer、CodeGenerator和Executor六大组件,依次完成词法解析、语义解析、逻辑改写、执行计划优化、代码生成及执行任务。同时,SQL层还支持Plan Cache功能,缓存历史执行计划以提升后续查询效率。视频讲解和图示展示了完整的SQL执行过程。

b363.png

OceanBase OBServer节点的SQL层将用户的SQL请求转化成对一个或多个Tablet的数据访问。SQL层会按照以下顺序经过一系列组件来处理一个SQL:


Parser -->Resolver-->Transformer-->Optimizer-->CodeGenerator-->Executor


视频讲解如下:


其中:


  • Parser

该组件负责词法或语法解析。将用户的SQL分成一个个的"Token",并根据预先设定好的语法规则解析整个请求,转换成语法树(Syntax Tree)。


  • Resolver

该组件负责语义解析。根据数据库元信息,将SQL请求中的Token翻译成对应的对象(例如库、表、列、索引等),生成的数据结构叫做Statement Tree。


  • Transformer

该组件负责逻辑改写。根据内部的规则或代价模型,将SQL改写为与之等价的其他形式,并将其提供给后续的优化器做进一步的优化。


  • Optimizer(优化器)


该组件根据数据库的统计信息为SQL请求生成最佳的执行计划。SQL层的执行计划分为本地、远程和分布式三种:

  1. 本地执行计划:只访问本服务器的数据。
  2. 远程执行计划:只访问非本地的一台服务器的数据。
  3. 分布式执行计划:会访问超过一台服务器的数据,执行计划会分成多个子计划在多个服务器上执行。


  • Code Generator(代码生成器)


该组件将执行计划转换为可执行的代码,但是不做任何优化选择。


  • Executor(执行器)


该组件启动SQL的执行过程。


下图展示了SQL层执行SQL的过程。

image.png


在标准的SQL流程之外,SQL层还有Plan Cache能力,将历史的执行计划缓存在内存中,后续的执行可以反复执行这个计划,避免了重复查询优化的过程。


相关文章
leetcode-SQL-608. 树节点
leetcode-SQL-608. 树节点
86 0
|
6月前
|
存储 SQL 数据库
【赵渝强老师】OceanBase的部署架构
OceanBase数据库支持两种部署架构:无共享(Shared-Nothing,SN)模式和共享存储(Shared-Storage,SS)模式。SN模式下,各节点对等,具备高扩展性、可用性和性能,运行于普通PC服务器集群;SS模式采用存算分离架构,租户数据存储在共享对象存储上,本地缓存热点数据。两种模式均支持高可用与多副本一致性,适用于不同业务场景。
401 1
|
4月前
|
数据库 数据中心 OceanBase
【赵渝强老师】OceanBase租户的资源管理
OceanBase数据库支持多租户架构,通过资源配置(Unit Config)、资源单元(Unit)和资源池(Resource Pool)实现资源隔离与管理。用户可灵活定义资源规格,分配CPU、内存等资源,并通过资源池管理租户资源分配,提升系统资源利用率和管理效率。
122 0
|
5月前
|
运维 关系型数据库 测试技术
【赵渝强老师】OceanBase部署工具
OceanBase是一款开源的国产分布式关系型数据库,支持通过obd和OCP部署数据库集群。obd(OceanBase Deployer)是OceanBase的安装部署工具,提供命令行和白屏界面两种方式,简化复杂配置流程,降低集群部署难度,并集成包管理、压测软件、集群管理等功能。OCP(OceanBase Cloud Platform)则面向中小型用户,提供主机管理、集群和租户运维等能力。文档详细介绍了obd的在线与离线安装方法、快速体验OceanBase的步骤,以及OCP的基本功能和主页面展示。
381 7
【赵渝强老师】OceanBase部署工具
|
5月前
|
运维 关系型数据库 数据库
【赵渝强老师】OceanBase云平台OCP
OceanBase数据库的OCP(OceanBase Cloud Platform)是面向中小型用户的云数据库管理平台,提供主机管理、集群及租户运维功能。其核心组件包括MetaDB和OCP Server,支持OceanBase数据库的全生命周期管理。本文介绍了使用root用户部署OCP的具体步骤,涵盖配置MetaDB、OCP节点、密码设置等内容,并附有操作界面截图与视频讲解,帮助用户快速完成部署并登录使用。
110 9
|
5月前
|
存储 SQL 数据库
【赵渝强老师】OceanBase OBServer节点的存储层
OceanBase集群的OBServer实例内部由多个组件协作完成数据存储与管理。其存储层采用分层结构,包括MemTable、L0 Mini SSTable、L1 Minor SSTable和Major SSTable,支持高效的数据写入与读取。数据以Tablet为单位存储,DML操作先写入内存,再逐步落盘并合并优化。文章还附有图示与视频讲解,帮助理解数据写入流程及存储机制。
|
5月前
|
运维 监控 测试技术
【赵渝强老师】使用obd快速体验OceanBase
OceanBase Deployer (obd) 是 OceanBase 数据库的安装部署工具,支持命令行与白屏界面两种方式。通过标准化复杂配置流程,降低集群部署难度。命令行适合深度用户,白屏界面便于快速体验。obd 还提供包管理、压测、集群管理等运维功能。文中详细介绍了使用 obd 部署 OceanBase 数据库集群的步骤,包括执行命令、连接数据库、查看信息及监控页面访问等内容,并附有视频讲解和示例输出。
143 1
|
5月前
|
存储 OceanBase
【赵渝强老师】OceanBase OBServer节点的目录结构
本文介绍了OceanBase OBServer节点的工作目录结构,包括必需的配置、日志和数据文件目录,以及各目录的作用与管理方式。
113 0
|
5月前
|
运维 关系型数据库 MySQL
【赵渝强老师】OceanBase OBServer节点的接入层
OceanBase数据库代理ODP(OBProxy)是其接入层组件,负责将用户请求高效转发至合适的数据库实例。作为独立进程部署,ODP兼容MySQL协议,支持连接管理、最佳路由、高性能转发、易运维、高可用及专有协议等关键特性,保障数据库服务稳定与性能。
|
6月前
|
存储 关系型数据库 MySQL
【赵渝强老师】OceanBase数据库从零开始:MySQL模式
《OceanBase数据库从零开始:MySQL模式》是一门包含11章的课程,涵盖OceanBase分布式数据库的核心内容。从体系架构、安装部署到租户管理、用户安全,再到数据库对象操作、事务与锁机制,以及应用程序开发、备份恢复、数据迁移等方面进行详细讲解。此外,还涉及连接路由管理和监控诊断等高级主题,帮助学员全面掌握OceanBase数据库的使用与管理。
307 5

推荐镜像

更多