ClickHouse列式存储| 青训营笔记

72 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天

1.数据库的概念

  • 定义:数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中,通常由数据库管理系统(DBMS)来控制,在现实中,数据、DBMS、以及关联应用一起被称为数据库系统,简称数据库
  • 数据库的类型:关系型数据库(把数据以表的形式存储,然后在各表之间建立关系,通过表之间的关系操作表中数据)非关系型数据库(支持存储和操作的非结构化及半结构化数据,没有固定的表结构,数据之间是相互独立的,不存在表与表的关系)
  • 按主机的数量:单机数据库,分布式数据库(分布式数据库由位于不同站点的两个或多个文件组成,数据库可以储存在多台计算机上,位于同一位置或不同网络)

2. 数据库操作语言

  • SQL是一种数据库编程语言,目前几乎所有的关系型数据库都在使用SQL语言来查询、操作和定义数据,及进行数据库的访问

3. 存储引擎

  • 存储引擎的应用:管理内存数据结构,比如索引、内存数据、缓存等;管理磁盘数据,磁盘数据的文件格式,磁盘数据的增删改查;读写算子,定义并维护维护数据写入逻辑、数据读取逻辑等

4. 行式存储和列式存储

  • 行式存储:一行数据的不同字段在物理存储上相邻,数据库的数据一行一行地存储到内存中
  • 列式存储:同一字段的数据在物理存储上相邻,比如学生信息表格中学生姓名存在同一片内存,学生学号存在于同一片内存等

5. 列式存储的优点

  • 数据压缩可以使读的数据量更少,在IO密集型计算中性能优势更大
  • 相同类型压缩效率更高
  • 排序之后压缩效率更高
  • 可以针对不同的数据类型采取不同的压缩算法