美文网首页
大字段优化实现

大字段优化实现

作者: zianL | 来源:发表于2019-08-25 10:15 被阅读0次

最近上手一个新项目,开始熟悉表的的时候发现其中一个表打开速度很慢,详细查看里面存储的数据,里面存储着img 编码后的数据,这样的一个大字段必然会导致查询数据变慢;这也跟开发中遇到的OOM对应上了;

OOM发生的背景:

微服务架构需要启动多个项目,所以自己给每个项目分配了150M内存,每当自己发布活动的时候、或者上架活动的时候本地项目就会发生OOM,但是一开始没有想这么多就多给了一些内存,现在想起来这个大字段就是真凶之一(最起码是重要原因)。

原因:

当发布活动或者上架活动时,对象就是一个超大对象(它属性中拥有一个超大数据字段),内存空间(年轻代、老年代均不足)无法开辟这么大的空间的时候直接跑出 OOM

解决方案:

1、先弄清楚一开始为什么用mysql存储图片静态资源
方案一:不修改原来业务逻辑的情况下,进行大字段分表再关联至activity表中,必要情况下再查询图片资源;
方案二:使用资源服务器专门存放这些静态资源,然后数据库中只存放静态资源url;

优化:

基于方案一:
优化前:

sql大字段优化前.PNG
优化后:
sql大字段优化后.PNG
由截图见,优化前总数据量才四百多,但是一个简单查询就花了15s多,可见响应速度多慢,经过简单的分表后查询速度提升至0.05s,提升巨大,使用主键查询一条时,优化前花时:0.182s,优化后花时:0.048s 同样有3、4倍的提升;特别假如数据量达百万级别时如果不优化系统简直无法使用;但是OOM的问题还是没有解决,所以业务允许情况下个人推荐使用方案二;

相关文章

  • MySql性能(9)- mysql的order by的工作原理

    全字段排序 rowid排序 全字段排序和rowid排序3.1 联合索引优化3.2 覆盖索引优化 优先队列算法 优化...

  • 业务实现中的坑

    1.字段定义,精确,模糊,非固定筛选 2.业务覆盖范围,公共字段的优化 3.对该业务的理解与设计,最终导致实现方式...

  • SQL优化2 order by

    order by 优化 优化内容 通过添加合适索引 去掉不必要的返回字段 介绍:表结构中 d字段未添加索引 c字段...

  • MySql数据库优化

    字段优化 表字段 not null,因为 null 值很难查询优化且占用额外的索引空间,推荐默认数字 0。 数据状...

  • 17.MySQL优化

    《高性能MySQL》——这本书都有的 “字段”优化总结 “索引”优化总结 索引的优化 “查询SQL”优化总结 “引...

  • Andorid final关键字

    final final变量声明 final 字段有助于优化器作出更好的优化决定,因为如果编译器知道字段的值不会更改...

  • face 38 mysql数据库层的优化

    mysql数据库层的优化 穿透缓存层 优化方向 数据表数据类型优化 字段使用什么样的数据类型更合适 字段使用什么样...

  • MySQL 数据库优化方法一览

    软优化 查询语句优化 使用索引 优化子查询 分解表 使用中间表 增加冗余字段 分析表、检查表、优化表 硬优化 硬件...

  • swift JSON转Model 模型优化

    标准模型 因为有时后台给的字段与客户端不匹配或者字段会变如:nickname nickName现在优化模型字段 因...

  • Android安装包Apk瘦身方案

    代码混淆 proguard混淆压缩,Shrink,去除代码无用的类,字段,方法。优化,Optimize,优化字节码...

网友评论

      本文标题:大字段优化实现

      本文链接:https://www.haomeiwen.com/subject/lialectx.html