news 2026/10/8 2:09:03

【赵渝强老师】崖山数据库的行地址ROWID

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【赵渝强老师】崖山数据库的行地址ROWID

崖山数据库的ROWID高度兼容Oracle语法,是HEAP堆表的伪列,代表行的物理存储地址,同时也是一种原生数据类型。

⚠️仅支持HEAP堆表;列存表、分布式部署场景不支持ROWID伪列。

视频讲解如下:

视频讲解如下

【赵渝强老师】崖山数据库的行地址ROWID

1. 基础概念

  • 伪列:不在表的字段定义中,select *不会返回,必须显式写select rowid查询;不能insert/update修改ROWID伪列。
  • 数据类型:ROWID类型固定占16字节二进制;UROWID通用ROWID变长1‑8000字节,用来存ROWID二进制,等价RAW类型。
  • 输出格式示例:1350:5:0:148:0,冒号分隔,和Oracle的18位Base64字符串格式不一样。

Oracle输出:AAAW78AABAAAFWXAAA(Base64串)
YashanDB输出:对象ID:文件号:段:块号:块内行号

2. ROWID结构

输出格式:ObjectId:FileId:SegId:BlockId:SlotId

片段含义
ObjectId表对象ID
FileId数据文件编号
SegId段编号
BlockId数据块号
SlotId块内部行槽号(行号)

配套包DBMS_ROWID,提供函数解析rowid,获取块号、文件号、行槽号,用法和Oracle的DBMS_ROWID兼容,分布式集群不可用。

3. 核心特性

  • 仅HEAP堆表生效:列存表、分布式表不能使用ROWID伪列;单机/共享集群HEAP表可用。
  • ROWID会变化的场景
    • 更新导致行迁移、行溢出;
    • ALTER TABLE MOVE、表重组、收缩;
      删除后新插入行可能复用旧ROWID。
  • 同一张HEAP表内部ROWID唯一;不同表ROWID可以重复,不能跨表做对比。
  • 可以把ROWID作为普通字段类型,建表时定义列类型为ROWID,用来存储行地址;Oracle不允许把ROWID作为字段类型,这是一个重要差异。
  • MySQL兼容模式下,伪列别名是__ysmy_rowid,Oracle模式直接使用ROWID关键字。

4. 常用SQL示例

-- 查询rowid伪列(Oracle兼容模式)SQL>selectrowid,deptno,dnamefromdept;ROWID DEPTNO DNAME-------------------------------------------- ------------ -------------2821:4:0:132:010ACCOUNTING2821:4:0:132:120RESEARCH2821:4:0:132:230SALES2821:4:0:132:340OPERATIONS4rowsfetched.-- 根据rowid快速定位行,查询性能极高SQL>selectdeptno,dnamefromdeptwhererowid='2821:4:0:132:2';DEPTNO DNAME------------ -------------30SALES1rowfetched.
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 2:08:07

Doris 4.1 从理论到实践 —— 第 14 章 端到端综合项目车联网实时数仓

Doris 4.1 从理论到实践 —— 第 14 章 端到端综合项目车联网实时数仓 课程定位:本系列收官章。整合前 13 章知识,完成车联网 TSP(Telematics Service Provider)实时数仓端到端项目。包括业务背景、架构设计、数据源准备、四层数仓分层建表、Flink CDC 采集、Flink 实时计算…

作者头像 李华
网站建设 2026/10/8 2:07:42

小白程序员必看:大模型时代如何突破求职困境,找到高薪AI岗位?

文章指出当前初级程序员岗位大幅减少,主要原因是企业停止招聘而非裁员,AI技术加速这一趋势。市场对“翻译需求成代码”的初级程序员需求下降,但对能“判断需求如何拆解”的高级人才需求激增。建议求职者:1)反思经验中“…

作者头像 李华
网站建设 2026/10/8 2:07:04

零基础看懂大模型落地!RAG/Agent/微调/私有化部署核心能力全解析

很多初学大模型的小伙伴都会陷入一个误区:只会堆砌名词,不懂实际落地。看着网上五花八门的大模型技术,分不清RAG、Agent、微调、私有化部署到底有什么用、该怎么用、适合什么场景。 其实企业级大模型落地,核心就靠四大核心能力&am…

作者头像 李华
网站建设 2026/10/8 2:06:48

为什么软件工程毕设可以采用“母版 + 模块组合”?

为什么软件工程毕设可以采用“母版 模块组合”? 预约、借阅或报修系统,都可能用到登录、权限、菜单和接口处理。把通用约定整理成工程底座,再接入具体业务,就是“母版 模块组合”的思路。 它的价值是减少重复搭建,…

作者头像 李华