clickhouse -- 架构概述
CH的核心特性
完备的DBMS功能
不单是一个数据库,它应该是一个数据库管理系统,具备DDL、DML、分布式、权限控制、安全备份等特性
列式存储和数据压缩
列式存储是指同一列的数据会被存储到一起,同一行的数据的列被存储在不同的文件中,比如有一个表有50个字段,100行数据,要提取某5个字段的数据来进行分析,对于行存储来说实际还是要扫描所有字段然后取出要的字段,而列存储可以直接去获取需要的列
数据压缩的基本原理,比如字符串abcdefghi_bdcefghi可以被压缩为abcdefghi_(9,8),压缩的本质就是对相同的数据进行编码存储,也就是说数据重复度越高,那么压缩率也就越高,而什么样的数据重复度高呢,同一列的数据由于拥有相同的属性,更容易出现重复,所以列式存储对数据压缩更友好
所以可以看到列式存储对于某些业务场景下,可以减少磁盘IO和数据传输体积,从而提高效率
向量化执行引擎
这里说的是从指令集的层面使用SSE4.2来进行单条指令执行多条数据,来进行并发,不懂
标准SQL支持
CH不像NoSQL数据库,它拥有数据库、表、视图这些传统概念,
