暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss内存表的存储

openGauss小助手 2021-10-25
305

Table类包含管理数据库中内存表所需的所有项。表由以下组件组成:列、主索引和可选的二级索引。关键成员变量说明如表4-36 Table-36 Table类的关键成员变量所示。

表4-36 Table类的关键成员变量

成员变量描述
tableCounter : std::atomic<uint32_t>原子表ID
m_tupleSize : uint32_t原始元组大小(以字节为单位)
m_tableExId : uint64_t openGauss提供的外部表ID
m_secondaryIndexes : SecondaryIndexMap按名称访问的二级索引映射
m_rwLock : pthread_rwlock_t RW Lock,防止在检查点/真空期间删除
m_rowPool : ObjAllocInterface*row_pool行分配器对象池
m_primaryIndex : MOT::Index*主索引
m_numIndexes : uint16_t 正在使用的耳机索引数
m_indexes : MOT::Index** 索引数组
m_fixedLengthRows : bool指定行是否具有固定长度
m_fieldCnt : uint32_t表schema中的字段个数
m_columns : Column**列数组

Row类包含管理表中的内存行所需的所有项,关键成员变量如表4-37所示。

表4-37 Row类的关键成员变量

成员变量描述
m_data : uint8_t保存行数据的原始缓冲区,开始于类的结束位置
m_keyType : KeyType 使用的键类型。
  • Internal –用于内部测试(64位)
  • Surrogate –用于无索引表
  • External –需要从行生成
m_pSentinel : Sentinel*指向主哨兵的指针
m_rowHeader : RowHeaderOCC行的头部,包含OCC操作的所有相关信息
m_rowId : uint64_t 创建行时生成的唯一rowId
m_table : Table*指向内存管理表的指针
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论