数据库架构:
压测指标分析Sysbench压测情况:
1. 压测参数配置
参数 | 值 |
--rand-type | uniform |
--table-size | 1000,0000 |
--table-num | 16 |
--db-ps-mode | disable |
--auto-inc | false |
--range-size | 5 |
--skip-trx | off |
测试表结构:
CREATE TABLE `sbtest1` (
`id` int(11) NOT NULL,
`k` int(11) NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT'',
PRIMARY KEY (`id`),
KEY `k_1` (`k`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
2. 场景说明
- 总计16 张表,每张表 1000 万行数据,数据分布uniform。
- tidb场景:基于range水平拆分模式的分布式(tidb默认会把所有表的数据按照range做自动均衡,某一张测试表的数据会均匀分布到多个机器上)。
- OB模式:单表即官网默认推荐模式,sysbench脚本不作修改时自动建立的表,这里简称非分区表;基于hash水平拆分模式的分布式,简称分区表。
- PolarDB-X场景:单表,sysbench脚本不作修改时自动建立的表,这里简称非分区表;基于hash水平拆分模式的分布式,简称分区表,索引采用本地索引;基于hash水平拆分模式的分布式,简称分区表,索引采用GSI全局索引。
3. 测试结果数据
TPCC (5000仓)
TPCC是专门针对联机交易处理系统(OLTP系统)的测试规范,一般情况下我们也把这类系统称为在线业务处理系统。1992年7月发布,几乎所有在OLTP市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测试结果,随着计算机技术的不断发展,这些测试结果也在不断刷新。
TPCC通常用于模拟测试复杂的在线事务处理系统,在大压力情况测试数据库的事务处理能力,以下压测汇总了三种分布式数据库的最大tpmC指标:
// 数据导入 5000仓
tiup bench tpcc --warehouses 5000 -D tpcc -H xxx -P xxx -T threads_num prepare
// 运行
tiup bench tpcc run -U root --db tpcc2 --host xxx --port xxx --time xxx --warehouses 5000 --threads
TPCH (100G)
TPCH(商业智能计算测试)是美国交易处理效能委员会(TPC,TransactionProcessing Performance Council) 组织制定的用来模拟决策支持类应用的一个测试集。目前,在学术界和工业界普遍采用它来评价决策支持技术方面应用的性能。
这种商业测试可以全方位评测系统的整体商业计算综合能力,对厂商的要求更高,同时也具有普遍的商业实用意义,目前在银行信贷分析和信用卡分析、电信运营分析、税收分析、烟草行业决策分析中都有广泛的应用,以下以TPCH-100G来对比分析三种分布式数据库的分析能力:
// 导入数据 100G
tiup bench tpch prepare --host xxx --port xxx --db tpch_100 --sf 100 --analyze --threads xxx
// run
tiup bench tpch run --host xxx --port xxx --db tpch_100 --sf 100 --check=true