导检后端性能优化
1.屏幕推送信息优化
- 问题描述
目前在导检登记、完成等队列变更操作时,会查找出需要推送的屏幕,根据连接的屏幕数据开启线程。在线程中查询对应数据,并推送到指定屏幕。 - 问题分析
这种方式导致每次操作,大量的数据库i/o操作。同时会导致数据库线程被快速耗尽。 - 处理方案
将需要推送的数据查询加载到内存中,在内存处理之后,再推送到各个屏幕。
2.慢sql优化
- 问题描述
一些复杂业务,使用的原生sql语句,应用了大量的联表,在数据量大或并发高时执行过慢。 - 问题分析
添加读锁会导致单条sql执行过慢。去掉会导致脏数据。 - 处理方案
对这部分业务经过上周压测抓取出对应的sql,对这些sql优化。
(联表拆分,添加索引)
3.增加屏幕消息推送队列
- 问题描述
目前每次操作都会重新查询所有需要推送屏幕的信息。 - 问题分析
这在并发高时,会产生大量冗余的查询。 - 处理方案
增加消息推送队列,减少容易操作(通过内存实现)
文档更新时间: 2023-05-29 13:45