TiFlash5.0.1与4.0.10 对比测试

TiFlash5.0.1与4.0.10 对比测试

                         2021-05-23 刘春雷

1、汇总

1.1、前言

因之前对比测试过DorisDB、ClickHouse、TiDB/TiFlash 4.0.10 版本的星型模型测试集,最近TiDB 5.0.1发布,引入MPP,官方表明:在分析查询上比4.0.x 会有质的提升,现进行测试。

1.2、测试结果

单表执行:

  • 5.0.1 单表查询,执行计划默认走TiKV,依然存在执行计划无法完美走TiFlash情况,强制走TiFlash比自动选择的TiKV快
    • 4.0.10 单实例 强制 比 4.0.10 单实例 默认 快:73.65%
    • 5.0.1 单实例 强制 比 4.0.10 单实例 默认 快:66.42%
  • 5.0.1 单表查询,强制TiFlash,两实例比单实例快的不多,比4.0.10 单实例 强制TiFlash 快:17.62%

多表关联执行:

  • 4.0.10 单实例 强制 比 4.0.10 单实例 默认 慢:11.38%
  • 5.0.1 单实例 强制 比 5.0.1 单实例 默认 快:97.57%
  • 5.0.1 单实例 默认 比 4.0.10 单实例 默认 快:80.60%
  • 5.0.1 单实例 强制 比 4.0.10 单实例 强制 快:98.36%
  • 5.0.1 两实例 强制 比 5.0.1 两实例 默认 快:56%

总结:

  • 提升:
    • 5.0.1 TiFlash整体性能有提升:单表查询 比4.0.10 快的不明显,多表关联查询,快的很多!
    • 5.0.1 TiFlash 默认执行计划 比 4.0.10 有提升
    • 与DorisDB、ClickHouse的性能差距 比4.0.10 提升 明显,尤其多表关联查询相差小很多
  • 问题:
    • 还是存在执行计划有一定的不准确,导致SQL执行时间不是最优

TiFlash 5.0.1 在性能上,比4.0.10 好很多,且在稳定性上也有提升,推荐大家及时升级,及时用起来~

注:DorisDB、ClickHouse测试数据,为引用之前的测试结果,可以参考之前的文章

【单表执行情况】:


【多表关联执行情况对比】:

2、准备工作

2.1、机器信息


2.2、添加表至Tiflash

alter table lineorder SET TIFLASH REPLICA 1;

alter table customer SET TIFLASH REPLICA 1;

alter table dates SET TIFLASH REPLICA 1;

alter table part SET TIFLASH REPLICA 1;
alter table supplier SET TIFLASH REPLICA 1;

alter table lineorder_flat SET TIFLASH REPLICA 1;

2.3、测试流程

已有集群5.0.1 -->导入数据 -->添加1个TiFlash–> 把表加入到TiFlash -->进行单表查询、多表查询、走默认tidb_isolation_read_engines 与 强制走TiFlash 进行对比

扩容至2个TiFlash 节点 -->等待均衡数据 --> 再次进行测试

【等待均衡】:

image

3、单表测试

参考文档执行SQL,地址:https://www.dorisdb.com/zh-CN/blog/1.8

【举例:5.0.1 单表查询,默认】

可以看到执行计划默认走tikv

强制走TiFlash

set SESSION tidb_isolation_read_engines = “tiflash”;

4、多表关联查询测试

参考文档执行SQL

【举例:5.0.1 多表查询,默认】:

可以看到执行计划默认走tikv、tiflash 组合的