行式存储 与 列式存储

网图

自己理解

如图table表分别以行、列存储

以行存储时(TextFile),所有的数据都在一块

优点:select * from table 时效率很快,但实际应用中一般不会select *
缺点:当select a,c from table 时也会加载所有的列,也就是所有的数据,这样IO就很大

以列存储时(parquet,orc),假设a,b放一列 ,c一列,d放一列

优点:当select c,d from table 时只会加载c,d两列,这样IO就大大降低
缺点:当select * from table 会导致数据重组,耗费掉一些性能

实际业务场景

在我们实际的业务场景中,我们基本不会去select * from table 一张表。都是用到哪些字段就去查询哪些字段,所以生成业务中都是采用列式存储。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容