You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用bitmap index(位图索引)时关联的row-ID存储在什么位置?

位图索引row-ID存储位置及block-ID对应关系解答

1. 位图索引关联row-ID的存储位置

位图索引不会单独为每一行存储完整的row-ID,它通过压缩的位图结构隐式关联行ID,具体存储逻辑如下:

  • 每个位图索引条目对应一个唯一的索引键值,条目包含三个核心部分:索引键值本身、该键值对应行范围的位图向量、该范围的起始row-ID(或row-ID区间元数据),所有索引条目都存储在独立的索引段索引块中,和表的数据块完全分开。
  • 位图向量的每个bit位的位置,和对应范围的起始row-ID做偏移计算,就能得到该bit位对应数据行的完整row-ID,不需要单独存储每行的row-ID,这也是位图索引存储空间占用远低于B树索引的核心原因。

2. 位图与block-ID、块内行的对应关系

不存在「多个位图对应同一个block-ID、每个位图对应块内某一行」的情况,具体逻辑如下:

  • 单个位图向量对应的是所有匹配该索引键值的行,覆盖的行范围通常跨多个数据块,不会仅对应单个块或者单个行。
  • 同一个数据块内的不同行,如果对应不同的索引键值,会分别落在不同键值对应的位图向量中,是不同位图的不同bit位对应同一块内的不同行,而非一个位图对应块内某一行。
  • 举个直观的例子:假设某用户表的gender列建有位图索引,只有male、female两个索引键值,对应两个位图。某数据块内共有10行数据,其中6行性别为男、4行性别为女,那么这两个位图里分别有6个、4个bit位对应这个块里的行,不会出现10个位图分别对应块内10行的情况。

内容的提问来源于stack exchange,提问作者Bonita Montero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:06:07