对于压缩数据在做sql的操作的时候,有些优化似乎可以做
1. 字典压缩的数据
1. group by
假设有表a:
id | province |
---|---|
111 | 1 |
222 | 1 |
333 | 1 |
444 | 1 |
555 | 2 |
666 | 3 |
假设表a在存储的时候对province
字段做了字典压缩, 则province
可以抽象为一个数据结构Map
Map(1 -> 3, 2 -> 1, 3 -> 1)
假设有sql:
select province, count(1) cnt
from a
group by province
而且数据量很大, 每个文件都会有很多的province
字典,即有很多个Map
, 则group by
操作可以看做是多个Map
的合并
2. join
假设还有表b:
province | province_cn |
---|---|
1 | 上海 |
2 | 浙江 |
3 | 江苏 |
假设有sql:
select id, province_cn
from a
inner join b
on a.province = b.province
此时做join
操作的时候无需对表a的province
这个字段数据进行解压就可以很好地进行join
了
网友评论