【自己的笔记】项目经验总结——mysql数据容量

目前打算降低服务器成本,首先的阻碍不是内存和CPU,而是数据库容量过大。主库、从库、备份库有关联影响。

数据库瘦身,有以下思路:

 

一、删除旧数据,

a、根据下面数据看到的是邮件数据,这个已经补充了定周期删除操作。

b、一些超过一年以上未登录的低等级玩家(游戏时间估计不足1小时),应该删除其关联数据。

在删除旧数据时遇到一个问题,删除淘汰玩家时可能使其他表的某些记录失去实际上的主人。这暴露了设计表的错误思路。没有确保与主键相关的数据在同一个表中(尽量不要让表太分散)。

二、采用线性压缩算法(复杂度小于等于o(n)),

这一点是针对erlang的tuple数据结构来说,其他语言可能不适用。

代码中有一些erlang数据结构,这些结构可以通过proto3的协议进行快速线性压缩。测试可以减少百分之30左右的空间占用。

三、最后是考虑从架构上把一些业务移动到廉价的服务器设备上。本文不展开讨论。

 

总结,数据库表尽量遵守一下原则:

a、二进制尽量使用线性压缩算法处理一下。

b、与主键相关的数据尽量放在一个表中。(注意和是否回档有关的数据,要区分开)

c、行为记录表中不要加描述性的汉字。

d、不要加不必要的索引。

 

额外说明,加新字段速度是比较快的,修改字段却非常的慢。

 

通常数据区:

最大数据区(邮件表历史邮件没有删完,特殊情况):

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值