完备的DBSM功能

作为一个DBSM,ClickHouse的基础功能:

  1. DDL(数据定义语言):动态修改、创建数据库的表、实图等,而无需重启数据库
  2. DML(数据操作语言):可以动态插入、修改数据
  3. 权限控制:可以按照用户粒度来区分查询,保障数据库安全
  4. 数据备份与恢复
  5. 数据库分布式管理

列式存储和数据压缩

这算是ClickHouse最知名的特性。 Click House作为一个OLAP数据库,不像MySQL一样使用行式存储数据,而是使用列式存储数据,也就是把一行的数据存在一起。一个例子:

MySQL:
	{jack, 20, 2021-02-01}
	{black, 18, 2022-01-01}
	{jane, 25, 2022-02-01}
ClickHouse:
	{jack, black, jane}
	{20, 18, 25}
	{2021-02-01, 2022-01-01, 2022-02-01}

向量化执行引擎

ClickHouse利用CPU的SIMD指令来做向量化查询,能充分利用现代CPU特性,提升查询效率。

关系模型和SQL查询

ClickHouse支持关系模型和SQL查询,意味着所有常见的SQL查询语句在ClickHouse中都是合法的,从其它关系型数据库迁移到ClickHouse的成本较低。

多样化的表引擎

多线程和分布式

如果说SIMD指令是在数据层面优化了数据处理性能,那多线程就是在线程级别使用并行来优化性能。线程级别的并行比SIMD普及更早,能够形成互补。

分布式就是避免“鸡蛋都放在同一个篮子”,提升服务的可用性。

多主架构

天然避免了单点故障。

在线查询

高效+开源

数据分片和分布式查询