【数据库】TiDB 5.3 TPCH 100G测试及思考

一、环境

tpc-H 100G数据 2.8版本
22个场景sql:
<https://github.com/pingcap/tidb-bench/tree/master/tpch/queries>

官方:

节点数量:3
CPU:Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz,40 核
内存:189 GB
磁盘:NVMe 3TB * 2

华为云:

kc1.4xlarge.4
节点数量:6
CPU:16vCPUs(kunpeng 920)
内存:64 GB
磁盘:极速SSD(fio bs=1M job=10 w=8783MiB/s,8782 IOPS)
布局:tikv和tiflash同一主机*3,tidb和pd在同一主机*3,绑2node

普通SSD:

TaiShan
节点数量:6
CPU:128 CPU(kunpeng 920)
内存:512 GB
磁盘:普通SSD(fio bs=16k w=250MB/s)
布局:
1、每台主机4块数据SSD,共同加到一个tiflash中
2、24*TiDB,3*PD,24Tikv,6Tiflash,每个server端单独绑一个node(一个node 32CPU)

二、参数设置

tiup cluster edit-config t1
tiflash:
   profiles.default.max_memory_usage = 10000000000000

set global tidb_allow_mpp=1;
set @@tidb_isolation_read_engines='tiflash';
set @@tidb_mem_quota_query = 10 << 30;

因为tidb_isolation_read_engines只能session级别,通过mysql客户端登陆调用本地脚本方式执行
mysql -h127.0.0.1 -uroot -P4000 -D tpch <<!
\\. 1.sql
!
执行多次,直到sql执行时间趋于稳定

三、测试结果

官方数据华为云3副本Tiflash华为云3副本tikv+tiflash普通SSD 6副本tikv+tiflash
Q18.086.61.68
Q22.532.483.09
Q34.844.64915.76
Q410.945.58919.18.27
Q512.2711.026.97
Q61.3210.55
Q75.914.06667.59
Q86.717.114.91
Q944.1930.33412.87
Q107.134.441.04
Q112.181.7713.03
Q122.882.8852.47
Q136.844.972.62
Q141.691.51.51
Q153.292.5-2.72.5-2.913.75
Q165.041.12.07
Q1711.77.924.89
Q1812.8711.114.17
Q194.753.051.38
Q208.892.424.62
Q2124.4412.415.47
Q221.231.1671.4

四、结果说明及一些猜想

Q4:

select
	o_orderpriority,count(*) as order_count
from
	orders
where
	o_orderdate >= '1995-01-01'
	and o_orderdate < date_add('1995-01-01', interval '3' month)
	and exists (
		select * from lineitem
		where 
      l_orderkey = o_orderkey 
      and l_commitdate < l_receiptdate
	)
group by o_orderpriority
order by o_orderpriority;
tiflash:5.589s
tikv+tiflash+tidb(默认配置):19.1s

explain analyze执行计划,默认配置下表lineitem走了cache:

Selection_24(Probe)          | 3.98         | 14185840  | cop[tikv]    |                                             |time:5m56.6s, **loops:16883**, 
cop_task: {num: 3827, max: 697.5ms, min: 585.8µs, avg: 133ms, p95: 340ms, max_proc_keys: 17867, p95_proc_keys: 15901, tot_proc: 7m13.6s, tot_wait: 1m6.1s, rpc_num: 3827, rpc_time: 8m29s, copr_cache_hit_ratio: 0.24}, tikv_task:{proc max:530ms, min:0s, p80:180ms, p95:280ms, iters:39261, tasks:3827}, scan_detail: {total_process_keys: 21217578, total_process_keys_size: 4216268171, total_keys: 25622316, rocksdb: {delete_skipped_count: 0, key_skipped_count: 20513898, 
block: {**cache_hit_count: 32099284, read_count: 1750183, read_byte: 29.1 GB**}}}   
| lt(tpch.lineitem.l_commitdate, tpch.lineitem.l_receiptdate)
 

在强制tiflash下,优化器重组了sql,两张表直接做hashjoin

HashJoin_42 | 4471364.76 | batchCop[tiflash] || semi join, equal:[eq(tpch.orders.o_orderkey, tpch.lineitem.l_orderkey)]

一些猜想:

1、TiDB优化器中cache hit权重更高?
2、TiDB优化器之后是否会像Oracle加入硬件性能参数计算代价?(参考aux_stats$)

Q9:

tiflash和tikv+tiflash差距不大;表supplier在tikv中走的点查,非常快
耗时上,默认配置总时间更短

其他:

AP还是看存储,多盘在某些场景下貌似不能弥补性能上的差距
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值