mysql的优化 表拆分_[MySQL优化案例]系列 -- 经典游戏数据表拆分优化案例

1. 目的

通过对比测试,分析某数据表tabC拆分方案前后性能对比,确定拆分方案的可行性。

2. 方法

对拆分方案前后两种类型进行对比测试。

同时,每次测试中采用两种更新方式:

1. 和原来类似,对数据表所有字段的更新分多次

2. 对数据表所有字段的更新一次性完成

3. 环境

本次测试采用线上实际数据导入。tabC表共有132万行记录,全表共100G。

将所有字段重新组合,确保每个分表的实际行长度不高于8KB,拆分成3个子表,大小分别是:

tabC_1.ibd 796M

tabC_2.ibd 10.2G

tabC_3.ibd 8.4G

之后再进行全表随机更新,每轮测试都在脚本中并发调用存储过程来完成,最大10个并发进程。

每次测试之前都重启mysqld,且无其他额外压力,确保环境公平。

4. 结果

全表

分表

多次update

02:56:49

00:16:06

一次update

00:54:02

00:08:56

5. 结论

从测试结果很明显看到,分表后的并发更新效率远比比分表前高,而且,如果对tblC表的多次更新能合并到一起的话,更能获得很大提高。

因此建议:

1. 对类似tblC表的其他表实施同样的拆分方案;

2. 对数据表的更新最好一次性完成,而不是多个字段分多次,将一个事务变成多个事务;

分表原则:

1. 从原表中分离出text字段;

2. 将分离出的text字段重新组合,确保每个分表的实际行长度不高于8KB;

3. 可能的话,不使用text,实际长度小于255的,直接转成varchar;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值