列基数是指数据表中某一列的 “不同值的数量”,它直接决定了这一列数据的 “区分度”,分为两类:
类型 | 定义(核心:不同值的数量) | 示例(以 100 万行数据表为例) |
---|---|---|
低基数列 | 不同值的数量极少,区分度低 | - 性别列(值:男 / 女,仅 2 个不同值) - 状态列(值:启用 / 禁用,仅 2 个不同值) - 部门列(值:技术 / 产品 / 运营,仅 3 个不同值) |
较高基数列 | 不同值的数量较多,但未达到 “唯一” 级别,区分度中等 | - 城市列(值:北京 / 上海 / 广州 /...,全国约 300 个不同值) - 年龄段列(值:18-25/26-30/...,约 10 个不同值,但覆盖行数分散) - 订单来源列(值:APP / 网页 / 小程序 / 线下,4 个不同值,但每个值覆盖行数适中) |
极高基数列 | 不同值的数量接近 / 等于总行数,区分度极高(接近唯一) | - 身份证号列(每行值唯一,不同值 = 总行数) - 订单 ID 列(每行值唯一,不同值 = 总行数) |
1
表示该行符合某列的特定值,0
表示不符合。 例:若 “性别” 列有值 “男”,则对应 bitmap 中所有 “性别 = 男” 的行标记为1
,其余为0
。需在 “查询加速效果” 与 “额外成本” 间找到平衡,核心权衡维度如下:
StarRocks 会自动判断 Bitmap 索引是否适用:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。