博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目随笔
阅读量:4537 次
发布时间:2019-06-08

本文共 498 字,大约阅读时间需要 1 分钟。

前因:最近上线的一个微信公众号,粉丝在60w+,每次客户推送公众号文章时,数据库必爆炸

硬件:服务器webapp 4实例

     数据库p4

排查:最初服务器是双实例s2->升级到4实例s3->服务器ok,没有挂掉,但是数据库爆炸

     数据库升级到p6->不行->临时升级到p11,ok->高峰期过后,降回p6,最终数据库定为p6

定位:因为公众号有2个菜单需要验证用户是否绑定,每次推送会有大量引流,导致验证绑定查询数据库次数过多,响应速度低于微信要求的5s,导致需要验证绑定的菜单全部崩溃

解决:1、给会员表查询字段openId和mobile增加聚合索引

   2、优化查询代码,减少查询次数

      3、新增redis存储会员数据,定时任务每天00:30同步所有会员数据到redis中,验证会员绑定时,先查询redis数据,当redis超过最大连接数之后,在把流量压给数据库

总结:1、会员表中本来可以把查询条件之一的openid作为主键的,但是由于某些原因并未将openId作为主键

 

转载于:https://www.cnblogs.com/swingzhang/p/8193991.html

你可能感兴趣的文章
HUE的自动化安装部署
查看>>
图片服务器(FastDFS)的搭建
查看>>
myBatis应用
查看>>
RuntimeError: DataLoader worker (pid 18255) is killed by signal: Killed.
查看>>
[PHP] 用AppServ一步到位安装PHP服务器
查看>>
mac brew install redis 报错
查看>>
Work? working!
查看>>
开源收藏
查看>>
profile default1
查看>>
Linux Too Many OpenFiles
查看>>
ural 1303 Minimal Coverage(贪心)
查看>>
学用MVC4做网站三:3.3更新栏目
查看>>
OnFileOpen与OnOpenDocument(转)
查看>>
时间戳(1532249295.179) 转日期格式(2018/07/22 16:48:15 179)
查看>>
单例模式
查看>>
Codeforces Round #470 (rated, Div. 2, based on VK Cup 2018 Round 1)A. Protect Sheep
查看>>
php用户名密码
查看>>
Mysql 更改最大连接数
查看>>
sqlserver 2012 重启是 ID 自动增长 1000的问题
查看>>
oracle用户连接失败
查看>>