news 2026/4/16 12:12:40

oceanbase基础概念和语法介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
oceanbase基础概念和语法介绍

OceanBase 是由蚂蚁集团自主研发的分布式关系型数据库,兼容 MySQL 和 Oracle 模式,具备高可用、强一致性、水平扩展、HTAP(混合事务/分析处理)等能力。以下是其核心基础概念与常用语法介绍。


一、OceanBase 核心架构与基础概念

1.分布式架构

  • 多副本强一致:数据自动分片(Partition),每个分片在多个节点(OBServer)上存有副本(通常 3 副本),通过 Paxos 协议保证强一致性。
  • 无共享(Shared-Nothing):每个节点独立存储和计算,避免单点瓶颈。
  • 自动负载均衡:数据和流量可动态迁移,实现弹性扩缩容。

2.关键组件

组件说明
OBServer数据库服务进程,负责 SQL 执行、存储引擎、事务处理
RootService集群管理服务(自动选主),负责负载均衡、副本调度、DDL 管理
OCP(OceanBase Cloud Platform)运维管理平台(Web UI),用于监控、备份、告警等
ODP(OceanBase Database Proxy)代理层,客户端连接 ODP,由其路由到具体 OBServer

3.租户(Tenant)

  • 逻辑隔离单元:类似“数据库实例”,一个集群可创建多个租户(如mysql_tenant,oracle_tenant)。
  • 资源隔离:每个租户分配 CPU、内存、磁盘资源(通过 Resource Unit 控制)。
  • 模式选择:创建租户时指定兼容模式(MySQL / Oracle)。

4.分区(Partition)

  • 表数据按分区规则(如 HASH、RANGE、KEY)拆分到多个 Partition。
  • 每个 Partition 有多个副本(Leader + Follower),Leader 处理读写,Follower 只读或同步。

5.LS(Log Stream) & Tablet

  • LS(日志流):事务日志的最小单位,一个 LS 包含多个 Tablet。
  • Tablet:存储的最小物理单元(类似传统数据库的“段”),是副本调度的基本单位。

二、OceanBase 兼容模式

OceanBase 支持两种 SQL 模式:

特性MySQL 模式Oracle 模式
默认端口28812881
标识符大小写不敏感(默认转小写)敏感(双引号保留大小写)
字符串引号单引号'单引号'
分页语法LIMIT offset, sizeROWNUMFETCH FIRST
自增列AUTO_INCREMENTSEQUENCE + TRIGGER
日期函数NOW(),CURDATE()SYSDATE,CURRENT_DATE

💡 创建租户时指定模式:

CREATETENANT mysql_tenant RESOURCE_POOL_LIST=('pool1'),PRIMARY_ZONE='zone1',LOCALITY='F@zone1,F@zone2,F@zone3',COMMENT'MySQL mode tenant';

三、常用 SQL 语法(以 MySQL 模式为例)

1.建表与分区

-- 普通表(自动分区)CREATETABLEusers(idBIGINTPRIMARYKEY,nameVARCHAR(50),create_timeDATETIME);-- 显式 HASH 分区(按 id 分 8 个分区)CREATETABLEorders(order_idBIGINT,user_idBIGINT,amountDECIMAL(10,2))PARTITIONBYHASH(user_id)PARTITIONS8;-- RANGE 分区CREATETABLElogs(log_idBIGINT,log_dateDATE)PARTITIONBYRANGECOLUMNS(log_date)(PARTITIONp2023VALUESLESS THAN('2024-01-01'),PARTITIONp2024VALUESLESS THAN('2025-01-01'));

2.插入与查询

-- 插入数据INSERTINTOusers(id,name,create_time)VALUES(1,'Alice',NOW());-- 查询(支持 MySQL 语法)SELECT*FROMusersWHEREid=1LIMIT1;-- 分布式 JOIN(自动优化)SELECTu.name,o.amountFROMusers uJOINorders oONu.id=o.user_id;

3.事务控制

-- 显式事务(强一致性)BEGIN;UPDATEaccountsSETbalance=balance-100WHEREuser_id=1;UPDATEaccountsSETbalance=balance+100WHEREuser_id=2;COMMIT;

4.系统视图(监控用)

-- 查看当前租户分区信息SELECT*FROMoceanbase.DBA_OB_TABLE_LOCATIONS;-- 查看会话SHOWPROCESSLIST;-- 查看资源使用SELECT*FROMGV$OB_SERVERS;-- 所有节点状态

四、特色功能语法

1.全局索引(Global Index)

-- 在非分区键上创建全局索引CREATEINDEXidx_order_amountONorders(amount)GLOBAL;

2.闪回查询(Flashback Query)

-- 查询 5 分钟前的数据(依赖 clog 保留时间)SELECT*FROMusersASOFTIMESTAMP(NOW()-INTERVAL5MINUTE)WHEREid=1;

3.多模(JSON 支持)

-- JSON 类型(MySQL 模式)CREATETABLEproducts(idBIGINT,info JSON);INSERTINTOproductsVALUES(1,'{"color": "red", "size": "M"}');SELECTinfo->'$.color'FROMproducts;

五、运维常用命令(通过 ODP 或直连)

场景命令
查看集群状态SHOW DATABASES;oceanbase库中有集群元数据
切换租户USE your_tenant_name;
查看执行计划EXPLAIN SELECT ...;
查看变量SHOW VARIABLES LIKE '%timeout%';
设置会话参数SET ob_query_timeout = 10000000;(单位微秒)

六、与 MySQL 的主要差异

功能OceanBase(MySQL 模式)MySQL
自增列支持,但性能较差(建议用序列)原生高效支持
外键❌ 不支持✅ 支持
存储过程✅ 支持(MySQL 模式)✅ 支持
触发器✅ 支持✅ 支持
全文索引❌ 不支持✅ 支持
临时表❌ 不支持✅ 支持
分区类型HASH/RANGE/LIST/KEY更丰富(如 COLUMNS)

📌最佳实践

  • 避免大事务(默认超时 10s)
  • 主键设计尽量单调递增(避免热点)
  • OLAP 查询走只读副本独立分析型租户

七、快速体验

  1. 部署:使用 OceanBase Docker 镜像 快速启动。

  2. 连接

    mysql -h127.0.0.1 -P2881 -uroot@sys -p -c -A
  3. 创建租户 & 数据库

    CREATETENANT test_tenant resource_pool_list=('test_pool');CREATEDATABASEtest_db;USEtest_db;

✅ 总结

关键点说明
定位分布式 HTAP 数据库,替代 MySQL/Oracle
核心优势强一致性、水平扩展、金融级高可用
使用门槛兼容 MySQL/Oracle,但需注意限制(如无外键)
适用场景高并发交易系统、海量数据存储、混合负载

官方文档:https://www.oceanbase.com/docs
开源版本:OceanBase CE(社区版)免费可用。

掌握以上概念和语法,即可开始在 OceanBase 上开发和部署应用!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 2:23:16

Wan2.2-T2V-A14B在动漫分镜脚本预演中的生产力提升效果

Wan2.2-T2V-A14B在动漫分镜脚本预演中的生产力提升效果 在当代动漫创作中,一个看似简单的镜头——比如主角从高楼跃下、衣袂翻飞、背景城市光影流动——背后往往需要原画师反复推敲构图、动画师逐帧调试动作轨迹,整个过程耗时数小时甚至数天。而如今&…

作者头像 李华
网站建设 2026/4/13 2:23:20

数字员工如何借助AI销冠系统实现销售业绩优化?

数字员工在现代企业中扮演着至关重要的角色,尤其是在优化业务流程和降低成本方面。通过与AI销冠系统的整合,数字员工能够有效地进行客户沟通,实现全天候服务,减少人工客服的需求。此类系统不仅提高了客户触达率,还通过…

作者头像 李华
网站建设 2026/4/13 2:54:00

光学工程师面试题汇总

光学工程师面试核心围绕基础理论、设计工具、项目经验三大模块,以下是高频考题及考察重点:一、基础理论类(考察专业功底)1. 解释马吕斯定律和布儒斯特定律,并说明它们在实际产品中的应用场景(如偏振片、减反…

作者头像 李华
网站建设 2026/4/16 11:56:40

基于Java+SSM的医院管理系统源码设计与文档

前言基于 JavaSSM 的医院管理系统,直击 “患者就医流程长、医护协同效率低、运营数据难管控” 的核心痛点,依托 Java 的稳定性与 SSM(SpringSpringMVCMyBatis)框架的分层架构优势,构建 “诊疗服务 行政运营 数据决策…

作者头像 李华
网站建设 2026/4/10 21:24:16

mpv命令行媒体播放器:简单快速的安装配置终极指南

mpv命令行媒体播放器:简单快速的安装配置终极指南 【免费下载链接】mpv 🎥 Command line video player 项目地址: https://gitcode.com/GitHub_Trending/mp/mpv mpv是一款强大的命令行媒体播放器,以其简洁高效的设计和出色的播放性能而…

作者头像 李华
网站建设 2026/4/14 16:30:20

终极Emacs配置指南:快速搭建专业开发环境

终极Emacs配置指南:快速搭建专业开发环境 【免费下载链接】emacs.d purcell/emacs.d: 这是Steve Purcell的Emacs配置库,包含了丰富的自定义设置和插件集,旨在为用户提供一个高效、功能全面且易于使用的Emacs开发环境。 项目地址: https://g…

作者头像 李华