千家信息网

优化系列 | 游戏数据表拆分优化经典案例

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,1. 目的通过对比测试,分析某数据表tabC拆分方案前后性能对比,确定拆分方案的可行性。2. 方法对拆分方案前后两种类型进行对比测试。同时,每次测试中采用两种更新方式:1. 和原来类似,对数据表所有字
千家信息网最后更新 2025年01月20日优化系列 | 游戏数据表拆分优化经典案例

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. 结果


全表分表
多次update02:56:4900:16:06
一次update00:54:0200:08:56


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

因此建议:
1. 对类似tblC表的其他表实施同样的拆分方案;
2. 对数据表的更新最好一次性完成,而不是多个字段分多次,将一个事务变成多个事务;


分表原则:
1. 从原表中分离出text字段;
2. 将分离出的text字段重新组合,确保每个分表的实际行长度不高于8KB;
3. 可能的话,不使用text,实际长度小于255的,直接转成varchar;


--------------------------------------分割线--------------------------------------

知数堂 (http://zhishuedu.com)培训是由资深MySQL专家叶金荣、吴炳锡联合推出的专业优质培训品牌,主要有MySQL DBA实战优化和Python运维开发课程,是业内最有良心、最有品质的培训课程。

更新 测试 分表 字段 数据 数据表 实际 方案 长度 培训 一次性 事务 多个 环境 结果 课程 组合 可行 很大 明显 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 58同城服务器一览表 网络安全协会年度工作安排 网络安全手抄报没颜色 软件开发发展前景的专业要求 额尔古纳市天气预报软件开发 服务器如何设置默认当前登录账户 链接腾讯云服务器步骤 中国网络安全处罚法 吴江区专业性网络技术怎么样 mysql哪里看数据库关系 四川三维土地资产管理软件开发 如何架设网站服务器 电网网络安全产品 国产软件开发龙头股 搭建mysql网络服务器步骤 合肥服务器工控机价格 如何使用数据库做库存管理 曲靖计算机网络技术学院 上海浦东新区网络技术公司 年龄数据库 教育局网络安全员工资 中国资本市场诚信数据库 共享软件开发实验总结 中国网络安全处罚法 计算机网络技术学习的必要性 海西大数据软件开发工程师专业 学会自我保护维护网络安全 海洋生态软件开发 数据库写数据影响查询 广联达图形算量后台数据库
0