数据 和 列存储
- 基数
- 字典编码
- 倒排索引
- BitMap
查询1: 所有记录中找 city=‘shanghai’ and product=‘cellphone’ 的行
city=‘shanghai’ 的 bitmap 1,0,1,0,0,1
与
product=‘cellphone’ 的bitmap 1,1,0,1,0,1
结果
1,0,0,0,0,1
即 出现在 第1
行和第6
行
查询2: group by city, product
group by : GroupBy语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。(摘自百度百科)
group by city, product 理论上的组合数应该是: city的基数 * product的基数
方式1
得到所有的组合数,按照查询1,这样查找到所有的行,然后根据查询条件聚合起来