若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135682663
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
Qt开发专栏:各种问题解决(点击传送门)
问题
发出的应用新版本客户反馈长期使用后,登录越来越卡,然后卡死。
原因
分析1(非本原因)
代码重构疏漏,发现登录信息10s反复记录,实际是10s更新最后一个字段就可以了,不是重复插入,但是也不多,此bug修复。
分析2
数据库有800多MB,记录工艺参数较大(全程可能满负荷运行,在这块之前考虑了使用2-3年问题不大,没有想到半年就达到了600多W条。
直接导致数据库崩了,删不掉,查不了,可以导出,应用登录不上:
基本判断就是实时工艺参数记录的问题了,超出边界了,这里没有做深度优化,因为之前1s记录5条,全年开一年满负荷才能达到360万条,所以问题应该就是这了,检查相关代码,并做好优化,只能查询前面60万,30万条,10万条都可以。
只能动态区域删除:
查询工艺数据的时候由于最大频率为1s记录5条,所以很容易超,正常来说用个三四年问题不大,这里面主要是管理员登录就查询有史以来所有的,而其他用户只查询登录时间之后的。
解决
所有查询工艺数据都加了限制“limit 600000”,限制查询60万条,其他方式优化如增加按钮,动态优化,后续根据用户需求再优化,目前这个是极端情况(额外策略处理是需要沟通协商增加需求和费用的,此处之前已经征询过客户意见,不做多余处理)。
检查了三级缓存的列表,放置了60万条,操作搜索翻页丝滑。
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135682663