写点什么

TiDB Cloud 上 Tiflash 列存功能初体验

  • 2023-11-17
    北京
  • 本文字数:678 字

    阅读完需:约 2 分钟

作者: TiDBer_BwwIQZt0 原文来源:https://tidb.net/blog/aa9a77e9


简介:


相比于行存,TiFlash 根据强 Schema 按列式存储结构化数据,借助 ClickHouse 的向量化计算引擎,带来读取和计算双重性能优势。相较于普通列存,TiFlash 则具有实时更新、分布式自动扩展、SI(Snapshot Isolation)隔离级别读取等优势。

一:TiFlash 对 OLAP 查询加速

OLAP 类的查询通常具有以下几个特点:


· 每次查询读取大量的行,但是仅需要少量的列


· 宽表,即每个表包含着大量的列


· 查询通过一张或多张小表关联一张大表,并对大表上的列做聚合

二:TiFlash 列存引擎针对这类查询有较好的优化效果:

(1) I/O 优化


· 每次查询可以只读取需要的列,减少了 I/O 资源的使用


· 同列数据类型相同,相较于行存可以获得更高的压缩比


· 整体的 I/O 减少,令内存的使用更加高效


(2) CPU 优化


· 列式存储可以很方便地按批处理字段,充分利用 CPU Cache 取得更好的局部性


· 利用向量化处理指令并行处理部分计算

三:实验过程:

(1)创建 tidb cloud 账号


(2)创建 tidb 集群


(3)通过 tidb cloud import 导入 1000 条和 100 万条基础测试数据。



(4)创建客户、订单、产品表,插入测试数据




(5)通过上图可以看出数据已入库,并且按照行存储。并执行关联,求和操作,耗时 1229ms。



(6)构建 TIFLASH 副本




(7)如图所示,发送进行了列存储。执行相同的 SQL 查询。



结论:如图所示相同 SQL,执行计划使用了 TiFlash ,执行时间 118ms;相比未使用 TiFlash 执行时间 1229ms,速度提升了 10 倍。


备注:一条 select 查询中,可以同时使用 TIKV 和 TIFLSH,tidb 默认会根据 select 查询进行判断。


发布于: 刚刚阅读数: 2
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB Cloud 上 Tiflash 列存功能初体验_版本测评_TiDB 社区干货传送门_InfoQ写作社区