[转帖]TiDB升级、TiFlash测试及对比ClickHouse
TiDB升级、TiFlash测试及对比ClickHouse
--2020-05-13 刘春雷
1、汇总
1.1、需求
测试3.0.7 升级至4.0.0-rc
测试部署TiFlash
测试TiFlash性能等
对比ClickHouse
1.2、结果
| 序列 | SQL | 表改成TiFlash命令 | tikv时间 | TiFlash时间 | ClickHouse | 百分比 |
| 12 |
举例模拟: CREATE TABLE `test` ( 表数据: 8324 w SQL: select avg(num) from test where create_time >'2020-05-07 17:40:01'; |
alter table test SET TIFLASH REPLICA 1; | 1 row in set ( 5.19sec) | 1 row in set ( 0.80 sec) |
1 row in set 0.041 sec |
TiFlash比TiKV减少: 84.6% ClickHouse比TiFlash减少: 74.9% |
2、流程及部署
2.1、流程
1、升级至4.0.0-rc
2、部署TiFlash
3、添加表至tiflash
4、会话级别设置使用tikv及tiflash
5、测试查询
2.2、机器信息编辑
集群:xxx集群
TiDB&PD 混合部署
TiKV*3
TiFlash *1
|
角色 |
机器 |
| TiFlash/TiKV/ClickHouse |
内存:192G CPU:20*2 Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz 磁盘:3*1.8T SSD |
ClickHouse:为单机部署
2.3、部署集群3.0.7版本
TiDB3.0.7集群部署完成
2.4、升级至4.0.0-rc
【1】、打包4.0.0-rc版本 完成
【2】、执行升级 完成
注:自己开发的工具
tidb_manage --options=upgrade -c xxx -o 3.0.7 -n 4.0.0-rc
2.5、已有集群部署TiFlash
2.5.1、设置
在 pd-ctl,开启 PD 的 Placement Rules 功能。
cd tidb-ansible-4.0.0-rc-xxx/resources/bin
./pd-ctl -u "http:10.xxx.x.x:xxx" -i
config set enable-placement-rules true
2.5.2、部署
ssh tidb中控
su - tidb
cd tidb-4.0.0-rc-xxx
【1、配置】
配置 scale-out.yaml
【2、执行扩容】
tiup cluster scale-out TiflashTest scale-out.yaml
Scaled cluster `TiflashTest` out successfully
3、测试
3.2、测试SQL信息
| 序列 | SQL | 表改成TiFlash命令 | tikv时间 | TiFlash时间 | 百分比 |
| 12 |
举例模拟: CREATE TABLE `test` ( 表数据: 8324 w SQL: select avg(num) from test where create_time >'2020-05-07 17:40:01'; |
alter table test SET TIFLASH REPLICA 1; | 1 row in set ( 5.19 sec) | 1 row in set ( 0.80 sec) | 减少84.6% |
4、对比ClickHouse
结果:
ClickHouse比TiFlash减少: 74.9%
SQL:
create database test;
CREATE TABLE test ENGINE = MergeTree order by id AS SELECT * FROM mysql('IP:port', 'db', 'test', 'user', 'password');

【差异原因】:
tiflash 因为需要支持 update,所以需要额外读取三列:handle (int64), version(uint64), del_mark(uint8)
clickHouse 只需要 scan,但是 tiflash 需要把数据做一次全局排序 + mvcc 过滤,这些是固定成本。
5、TiFlash使用
45.1、使用步骤
【1、添加表至TiFlash】
alter table xxx SET TIFLASH REPLICA 1;
【2、查看进度,需要available=1 后才可能使用到tiflash】
SELECT * FROM information_schema.tiflash_replica ;

- AVAILABLE 字段表示该表的 TiFlash 副本是否可用。1 代表可用,0 代表不可用。副本状态为可用之后就不再改变,如果通过 DDL 命令修改副本数则会重新计算同步进度。
- PROGRESS 字段代表同步进度,在 0.0~1.0 之间,1 代表至少 1 个副本已经完成同步。
【3、设置引擎,会话级别】
set SESSION tidb_isolation_read_engines = "tikv";
set SESSION tidb_isolation_read_engines = "tikv,tiflash";
set SESSION tidb_isolation_read_engines = "tiflash";
【4、执行具体SQL或执行计划】
查看执行计划,如果有cop[tiflash],则说明使用到了tiflash

【5、其他优化参数,会话级,待确认优化程度】
set @@tidb_opt_agg_push_down=1;
set @@tidb_opt_distinct_agg_push_down=1;
[转帖]TiDB升级、TiFlash测试及对比ClickHouse的更多相关文章
- 前端测试框架对比(js单元测试框架对比)
前端测试框架对比(js单元测试框架对比) 本文主要目的在于横评业界主流的几款前端框架,顺带说下相关的一些内容. 测试分类 通常应用会有 单元测试(Unit tests) 和 功能测试(Function ...
- TiDB单机安装测试
TiDB单机安装测试 CentOS7.3安装MySQL5.6 1:下载TiDB安装包# cd /opt/source# wget http://download.pingcap.org/tidb-la ...
- c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比
c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比对比 在6.22 号发布了 c# sqlsugar,his ...
- Haproxy和Nginx负载均衡测试效果对比记录
为了对比Hproxy和Nginx负载均衡的效果,分别在测试机上(以下实验都是在单机上测试的,即负载机器和后端机器都在一台机器上)做了这两个负载均衡环境,并各自抓包分析.下面说下这两种负载均衡环境下抓包 ...
- tidb 升级步骤
1.检查ansible版本,正常情况下,2.1 rc3需要兼容ansible 2.5以上的版本 $ ansible --version 2.检查python两个模块jinja2需要升级到2.9.6或以 ...
- cs5642-v3各配置文件测试图片对比
寄存器功能强大,可以配置很多参数,每个参数出来的图像都不同 我们以cs5642-v3的两个配置进行了对比测试 测试准备 配置文件:ov5642_960p_RAW和OV5642_YUV_VGA 测试摄像 ...
- [转]Python测试框架对比----unittest, pytest, nose, robot framework对比
测试框架 什么是框架? 框架(Framework)是整个或部分系统的可重用设计,框架是用来解决代码的组织及运行控制问题的. 在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求 ...
- Python测试框架对比
如有任何学习问题,可以添加作者微信:lockingfree 更多学习资料请加QQ群: 822601020获取 unittest, pytest, nose, robot framework对比 什么是 ...
- 产品升级前后MD5码对比
在做产品测试的时候,经常会需要对比升级前后的MD5码,这时可以通过终端登录设备,具体步骤如下: 1.在升级前时,将MD5码写入log1.info文件: check_md5 -d / -w log1.i ...
- SpringBoot2 集成测试组件,七种测试手段对比
一.背景描述 在版本开发中,时间段大致的划分为:需求,开发,测试: 需求阶段:理解需求做好接口设计: 开发阶段:完成功能开发和对接: 测试上线:自测,提测,修复,上线: 实际上开发阶段两个核心的工作, ...
随机推荐
- 笔记本为什么不出可升级CPU的,用台式CPU不行吗?
我十几年年前的thinkpad 通过更换cpu复活了:联想ThinkPad E430c i3变i7:笔记本电脑CPU升级思路-CPU参数 为什么现在的市面上可以更换cpu的笔记本非常稀少呢? inte ...
- UE5: UpdateOverlap - 从源码深入探究UE的重叠触发
前言 出于工作需要和个人好奇,本文对UE重叠事件更新的主要函数UpdateOverlaps从源码的角度进行了详细的分析,通过阅读源码,深入理解重叠事件是如何被触发和更新的. 解决问题 阅读本文,你将得 ...
- 【Python】人工智能-机器学习——不调库手撕贝叶斯分类问题
1. 作业内容描述 1.1 背景 数据集大小150 该数据有4个属性,分别如下 Sepal.Length:花萼长度(cm) Sepal.Width:花萼宽度单位(cm) Petal.Length:花瓣 ...
- WinDbg实践--入门篇
WinDbg从字面意思就是Windows+Debug的组合,即Windows平台上的调试工具,可以调试用户模式.内核模式.dump文件等,总之知道它的调试功能非常强大就行了.WinDbg调试命令分 ...
- 华为云MetaStudio全新升级,盘古数字人大模型助力数字人自由
摘要:基于盘古大模型能力,华为云MetaStudio数字内容生产线全新升级,推出数字人模型生成服务和模型驱动服务. 近日,华为开发者大会2023 ( Cloud ) 在东莞拉开帷幕.基于盘古大模型能力 ...
- 这项评测,华为云GaussDB(for MySQL)顺利通过
摘要:近日,中国信息通信研究院(简称"中国信通院")公布了第十五批"可信数据库"评测结果.华为云GaussDB(for MySQL)凭借过硬的技术实力顺利通过& ...
- 细说Python Lambda函数的用法,建议收藏!
摘要:今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 名称是用于引用或寻址任何实体的约定.我们周围的几乎所有事物都有名字.编程领域也与此一致.但这是必须命名的吗?还 ...
- DTSE Tech Talk | 云原生架构下的数字身份治理实践
摘要:由华为技术大咖VS派拉软件CTO为大家详解云原生架构下的身份管理平台,构建云安全数字身份入口. 本文分享自华为云社区<DTSE Tech Talk | 第4期:云原生架构下的数字身份治理实 ...
- 万亿养老市场如何抢占商机?云巢智慧康养物联网加速器,三招化解ISV痛点!
摘要:云巢智慧康养物联网加速器,围绕ISV的种种痛点,提供快速上云.资源共享.商业合作等多方面的支持,助力企业成长,共建智慧康养物联网生态. 本文分享自华为云社区<万亿养老市场如何抢占商机?云巢 ...
- 带你上手全新版本的Webpack 5
摘要:webpack5快速入门,船新版本,建议收藏 本文分享自华为云社区<webpack5快速入门,船新版本,建议收藏>,作者:北极光之夜.. 一. 快速上手 1.1 Webpack功能: ...