导检后端性能优化

1.屏幕推送信息优化

  • 问题描述
    目前在导检登记、完成等队列变更操作时,会查找出需要推送的屏幕,根据连接的屏幕数据开启线程。在线程中查询对应数据,并推送到指定屏幕。
  • 问题分析
    这种方式导致每次操作,大量的数据库i/o操作。同时会导致数据库线程被快速耗尽。
  • 处理方案
    将需要推送的数据查询加载到内存中,在内存处理之后,再推送到各个屏幕。

2.慢sql优化

  • 问题描述
    一些复杂业务,使用的原生sql语句,应用了大量的联表,在数据量大或并发高时执行过慢。
  • 问题分析
    添加读锁会导致单条sql执行过慢。去掉会导致脏数据。
  • 处理方案
    对这部分业务经过上周压测抓取出对应的sql,对这些sql优化。
    (联表拆分,添加索引)

3.增加屏幕消息推送队列

  • 问题描述
    目前每次操作都会重新查询所有需要推送屏幕的信息。
  • 问题分析
    这在并发高时,会产生大量冗余的查询。
  • 处理方案
    增加消息推送队列,减少容易操作(通过内存实现)
文档更新时间: 2023-05-29 13:45