news 2026/5/25 21:39:58

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/5/26 5:32:22

基于PHP的画稿定制系统的设计与实现源码设计与文档

前言 基于 PHP 的画稿定制系统,直击 “用户需求表达模糊、画师资源分散、定制流程无保障” 的核心痛点,依托 PHP 的高效后端处理能力与 Laravel 框架的快速开发优势,构建 “需求匹配 创作协同 安全交易” 的一体化画稿定制服务平台。传统模…

作者头像 李华
网站建设 2026/5/26 7:36:40

Chat UI Kit React:30分钟搭建专业级聊天界面的终极指南

Chat UI Kit React:30分钟搭建专业级聊天界面的终极指南 【免费下载链接】chat-ui-kit-react Build your own chat UI with React components in few minutes. Chat UI Kit from chatscope is an open source UI toolkit for developing web chat applications. 项…

作者头像 李华
网站建设 2026/5/25 23:52:14

vfox插件管理完全指南:轻松掌握多版本工具切换技巧

vfox插件管理完全指南:轻松掌握多版本工具切换技巧 【免费下载链接】vfox 项目地址: https://gitcode.com/gh_mirrors/vf/vfox Version-Fox(简称vfox)是一款功能强大的跨平台版本管理器,专门解决开发者在不同项目间切换环…

作者头像 李华
网站建设 2026/5/26 6:18:38

语音转写技术在专业服务领域的应用实践

作为专业服务从业者,高效的信息记录与处理能力直接影响工作质量。以留学咨询行业为例,日常需要处理大量语音交流内容,传统手工记录方式不仅效率低下,还容易遗漏关键信息。本文将结合技术实现原理,探讨语音转写工具在专…

作者头像 李华
网站建设 2026/5/26 0:20:59

Cartographer SLAM系统实战指南:从零构建智能地图

Cartographer SLAM系统实战指南:从零构建智能地图 【免费下载链接】cartographer 项目地址: https://gitcode.com/gh_mirrors/car/cartographer 在机器人技术和自动驾驶领域,精准的环境感知与定位是核心技术挑战。Cartographer作为谷歌开源的SLA…

作者头像 李华
网站建设 2026/5/25 14:37:18

LangChain实战快速入门笔记(三)--LangChain使用之Chains

LangChain实战快速入门笔记(三)–LangChain使用之Chains 文章目录LangChain实战快速入门笔记(三)--LangChain使用之Chains一、Chains的基本使用1.Chain的基本概念2.LCEL 及其基本构成3.Runnable3.1 为什么需要统一调用方式&#x…

作者头像 李华