![](https://csdnimg.cn/release/download_crawler_static/86581225/bg1.jpg)
基于列存储的数据库存储系统研究
基于列存储的数据库,相对于传统的基于行的数据库,更适合在数据仓库存储方面发挥特长
1 简介
在项目中,将研究一个客户(常规)文件系统设计,以提高基于列存储数据库的查询性
能。该基于列存储数据库除了在磁盘上存储数据方式不同外,类似于典型的关系型数据
库(基于行存储的数据库,如MySQL或Postgres)。不同之处如图1所示:在一个基于行
存储的数据库中,每一行的属性按顺序存储,并在每一行被存储在一个连续的文件中。
而在一个基于列存储的数据库中,每个属性列存储在一个单独的文件。
这个文件的配置有一个优势,主要是适合只读数据库(数据仓库)。首先,任何查询涉
及到的数据库属性的子集回归,只需要较少的磁盘带宽,因为只加载所需的属性。随着
装载属性增多,查询次数也就增加。其次,每个列存储一个单一类型使文件比传统的数
据库可压缩(整数,八进制,字节,等等)性更高。压缩减少了磁盘上的数据读取量,
可以进一步提高性能。第三,CPU只处理为所需属性的数据列,只需要在内存中缓存,
节省内存资源,提高CPU的性能。
基于行存储的数据库
Source IP Dest IP Source Port Dest Port
基于列存储的数据库
图1:基于行存储数据库和基于列存储数据库文件系统布局
面向列存储的缺点之一是:一个表中包含多个files。推测由于基于列存储可以降低磁盘
带宽要求,因此基于列存储的数据库可以提高查询性能。但是它将增加磁盘查找时间,
因为查询期间在一个磁盘上要定位更多的files。因此希望文件系统可以定制,这样可以
使基于列存储数据库的file寻求时间最小化,这样提高查询性能。
这个项目的目的是为了提高基于列存储数据库的操作性能,用于探讨如何捕获和储存大