听说PolarDB的polarx的列存有点不一样?https://developer.aliyun.com/ask/563922?spm=a2c6h.13066354.ask-index.70.3b964c13AGAoGP
简介
当前主要面向OLTP场景,广泛应用于在线业务,日常产生大量的数据。但是,基于行存的查询性能并不能满足所有应用场景的需求。通常情况下,为了实现复杂分析型查询,需要将数据从PolarDB MySQL版导出,然后导入到外部专用的OLAP系统中再进行分析查询。这样一来,需要使用两套数据库系统,架构复杂性、运维工作量和成本都会大大增加。
PolarDB MySQL版重磅推出的列存索引(In-Memory Column Index,简称IMCI)面向OLAP场景大数据量复杂查询。通过列存索引,PolarDB MySQL版实现了一体化的实时事务处理和实时数据分析的能力,成为一站式HTAP数据库产品解决方案。通过一套数据库系统,即可满足业务的OLTP及OLAP需求。https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/overview-29?spm=a2c4g.11186623.0.0.59a33df96esI5H
技术原理
列存索引特性在PolarDB MySQL版中的功能架构图如下:
从以上架构图可以看到,PolarDB MySQL版从存储引擎、执行算子、优化器三个层面设计了列存索引的特性:
存储引擎:支持实时事务级别一致性的行列混合存储;
执行算子:面向列存的向量化并行执行算子,支持极速的单表和多表查询;
SQL Parser/优化器:面向行列混合存储的CBO优化器,可以根据代价自动选择行存或者列存执行查询请求;
在此架构下,PolarDB MySQL版实现了100%兼容MySQL协议的基础上,同时获得数个数量级的查询加速效果。
核心优势
PolarDB MySQL版依托列存索引特性,具备如下优势:
100%兼容MySQL:列存具有与MySQL一致的数据类型系统,支持灵活的类型转换,100%兼容MySQL协议;
优秀的HTAP性能:PolarDB在OLTP方面本身具备良好性能。列存索引使其OLAP性能也与专用的OLAP数据库系统处于同一水平;
行列混合存储,降低成本:同时支持行存储和列存储两种格式,且实时保证行列的事务级一致。列存更具有低成本的优势。