一、前言
1.企业 & 行业 & 业务介绍
金融数据校验核对。
2.目前遇到的数据库挑战
MySQL 大数据量查询耗时太长。
3.参加活动的原因
了解TiDB敏捷模式,探索数据库查询效率新方向。
4.敏捷模式的体验总结
可视化界面方便TiDB集群安装及对集群的管理,能够快速创建TiDB数据集群投入使用。
5.敏捷模式是否能应对该挑战
敏捷模式较为灵活,扩展性强,TiDB 大数据量查询效率明显比 MySQL 更强,能够满足大数据量查询场景需求。
二、平凯数据库敏捷模式使用步骤
1.云服务器配置:
TEM:CentOS 7.9 64位 8核 16G,可降低配置
TiDB cluster:CentOS 7.9 64位 8核 16G
2.TEM 部署流程
2.1 从飞书文档下载 TEM 安装包,并上传云服务器
2.2 解压安装包
tar xvf tem-amd64.tar.gz
cd tem-package-v3.1.0-linux-amd64
2.3 修改元数据库文件 vim metadb_topology.yaml,配置中IP使用云服务器内网IP
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
arch: "amd64"
pd_servers:
- host: 172.16.16.12
tidb_servers:
- host: 172.16.16.12
port: 4000
tikv_servers:
- host: 172.16.16.12

2.4 修改TEM配置文件 vim config.yaml,配置中IP使用云服务器内网IP
global:
user: "tidb"
group: "tidb"
ssh_port: 22
deploy_dir: "/tem-deploy"
data_dir: "/tem-data"
arch: "amd64"
log_level: "info"
enable_tls: false
server_configs: #这里指定tem 节点的全局配置
tem_servers:
db_addresses: "172.16.16.12:4000"
db_u: "root"
db_pwd: ""
db_name: "test"
log_filename: "/tem-deploy/tem-server-8080/log/tem.log"
log_tem_level: "info"
log_max_size: 300
log_max_days: 30
log_max_backups: 0
tem_servers:
- host: "172.16.16.12"
port: 8080
mirror_repo: true # 是否开启镜像仓库,多个TEM节点时,最多只允许一个节点的开启

2.5 执⾏部署 TEM 命令
./install.sh
执行脚本后,1分钟左右可完成 TEM 安装。

2.6 部署完成之后,TEM 服务会⾃动启动,请使⽤下⾯的地址访问 TEM。
# http://<TEM 部署ip地址>:<port>/login
http://106.52.60.242:8080/
# TEM 默认⽤户为 admin, 默认密码为 admin

三、用 TEM 部署平凯数据库敏捷模式
1.配置凭证

2.下载敏捷模式安装包,进行组件管理

3.配置中控机

4.配置集群主机

5.创建集群
5.1 填写集群基础信息,选择 敏捷模式


5.2 规划集群节点


5.3 配置集群参数和告警,默认 下一步
5.4 预览创建配置,确认无误后点击“创建”按钮启动创建任务

5.5 集群创建成功后,集群概览

6.调整下平凯数据库敏捷模式全局变量
set global tidb_runtime_filter_mode=LOCAL;
set global tidb_opt_enable_mpp_shared_cte_execution=on;
set global tidb_rc_read_check_ts=on;
set global tidb_analyze_skip_column_types="json,blob,mediumblob,longblob,mediumtext,longtext";
set global tidb_enable_collect_execution_info=off;
set global tidb_enable_instance_plan_cache=on;
set global tidb_instance_plan_cache_max_size=2GiB;
set global tidbx_enable_tikv_local_call=on;
set global tidbx_enable_pd_local_call=on;
set global tidb_schema_cache_size=0;
-- 是否持久化到集群:否,仅作用于当前连接的 TiDB 实例
set global tidb_enable_slow_log=off;
四、性能测试
造数到 TiDB,使用 sysbench 造 5张表数据,每张表 200 w数据量;
sysbench oltp_read_write \
--mysql-host=43.139.31.238 \
--mysql-port=4000 \
--mysql-user=root \
--mysql-password='v%o9Hh8g$!Tdbgb' \
--mysql-db=sbtest \
--tables=5 \
--table-size=2000000 \
--db-driver=mysql \
--mysql-ignore-errors=all \
--create_secondary=off \
--auto-inc=on \
prepare
造数到 MySQL,使用 sysbench 造 5张表数据,每张表 200 w数据量;
sysbench oltp_read_write \
--mysql-host=129.204.86.3 \
--mysql-port=3306 \
--mysql-user=root \
--mysql-password='password' \
--mysql-db=sbtest \
--tables=5 \
--table-size=2000000 \
--db-driver=mysql \
--mysql-ignore-errors=all \
--create_secondary=off \
--auto-inc=on \
prepare
| 性能指标 | MySQL | TiDB | 差值 | 性能提升 |
|---|---|---|---|---|
| 平均 TPS | 25.53 | 32.65 | 7.12 | +27.9% |
| 平均 QPS | 508.56 | 685.73 | 177.17 | +38.4% |
| 平均延迟 | 6534.62 ms | 4574.32 ms | -1,960.3 ms | -29.9% |