性能优化-list嵌套list

功能是评价列表,抓包结果如上图。每一行元素又嵌套“商品信息”和图片数组。看下xx写的主要逻辑。

 

最外层从mysql查询到基本数据的列表,然后在for循环里面再从db里面查询图片列表和商品信息。这个性能绝对不好。查了下rpc接口的时间:

如果只在db层,该如何优化呢。

1 今天一个同事提醒了下,查询嵌套的数据时,可以取外面的outIds,然后查询里面的嵌套的数据时,使用in(:outIds).这样就减少了连接数据库的次数。然后获取的数据再根据ID来匹配。单前提是数据库没有分表的话,

2 在数据库的底层看就是表之间的嵌套,只能数据冗余来实现。上面的例子,图片评价列表保存时,可以转换为一个json对象,当做一个字段保存在最外层的表中。商品信息类似的。这些冗余的json对象的字段一般情况仅仅是按业务需要的几个字段,一般都是个位数的一般都比原来对象对应的表的字段少很多。

至于插入的时机,job定时跑还是调用保存接口时看业务需求。及时性不高的话,job来执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值