doris基本操作,08-实战,索引

简述

目前的Doris支持两类索引
内建的智能索引,包括前缀索引和ZoneMap索引。
用户创建的二级索引,包括Bloom Filter索引和Bitmap倒排索引。

前缀索引

在排序的基础上,根据给定的前缀字段,快速查询数据的索引方式。
我们将一行数据的前36个字节,作为这一行数据的前缀索引。
当遇到varchar类型字段时,前缀索引终止。

举个例子一:
下表table_001的前缀索引是user_id(8Byte) + age(4Bytes) + message(前24个Bytes),凑成的36个字节

字段类型
user_idbigint
ageint
messagevarchar(100)
max_dwell_timedatetime

再举个例子二:
下表的前缀索引是user_name(20 Bytes),后面没有了。
因为前缀索引遇到varchar就会终止,user_name是varchar类型,所以即使user_name只有20个Bytes的长度,也不再往后继续。

字段类型
user_namevarchar(20)
ageint
messagevarchar(100)
max_dwell_timedatetime

索引命中

前缀索引在查询时的生效条件与mysql类似,最左匹配原则,支持范围查找(<, >, between, in等),遇到or会失效。
下面sql01能够命中前缀索引,而sql02不能命中

# sql01
select * from table_001 where user_id = 1 and age = 20 and message = 'haha' and max_dwell_time = xxx;

# sql02
select * from table_001 where age = 20 and message = 'haha' and max_dwell_time = xxx;

如果查询条件与表字段顺序不一样咋办呢?
这时可以利用rollup生成关联表,调整表字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值