0
点赞
收藏
分享

微信扫一扫

doris 前缀索引使用规则


前缀索引

在 Aggregate、Unique 和 Duplicate 三种数据模型中。底层的数据存储,是按照各自建表语句中,AGGREGATE KEY、UNIQUE KEY 和 DUPLICATE KEY 中指定的列进行排序存储的。而前缀索引,即在排序的基础上,实现的一种根据给定前缀列,快速查询数据的索引方式。

前缀索引是稀疏索引,不能精确定位到 Key 所在的行,只能粗粒度地定位出 Key 可能存在的范围,然后使用二分查找算法精确地定位 Key 的位置。

推荐规约

  1. 建表时,正确的选择列顺序,能够极大地提高查询效率
    因为建表时已经指定了列顺序,所以一个表只有一种前缀索引。这对于使用其他不能命中前缀索引的列作为条件进行的查询来说,效率上可能无法满足需求,这种情况,我们可以通过创建 物化视图 来人为的调整列顺序。
  2. 前缀索引的第一个字段一定是最常查询的字段,并且需要是高基数字段:
    a. 分桶字段注意事项:这个一般是数据分布比较均衡的,也是经常使用的字段,最好是高基数字段
    b. Int(4)+ Int(4) + varchar(50),前缀索引长度只有 28
    c. Int(4) + varchar(50) + Int(4),前缀索引长度只有 24
    d. varchar(10) + varchar(50) ,前缀索引长度只有 30
    e. 前缀索引(36 位):第一个字段查询性能最好,前缀索引碰见 varchar 类型的字段,会自动截断前 20 个字符
    f. 最常用的查询字段如果能放到前缀索引里尽可能放到前前缀索引里,如果不能,可以放到分桶字段里
  3. 前缀索引中的字段长度尽可能明确,因为 Doris 只有前 36 个字节能走前缀索引。
  4. 如果某个范围数据在分区分桶和前缀索引中都不好设计,可以考虑引入倒排索引加速。

举报

相关推荐

0 条评论