对于压缩数据在做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了