接口响应优化方案

2023-11-06

        最近收到客户反映系统卡顿严重,然后让他截图看了下,最长响应时长居然高达16s,其他3s,4s的接口一大堆,简直是恐怖!

          简单来说,这个耗时16s的接口其实是统计一张历史数据表里的数据,这张表大概有三百多万条数据,日增长1万左右,因为客户要求最多留存2年,所以也不必考虑分表了。

        看了下查询逻辑,其实也比较简单,就是根据两个字段去数据库里筛选,但是查询出来的数据量比较大,所以不管怎么优化都效果不好;然后我注意到该表使用innoDb存储引擎,考虑到历史数据表查多写少,是不是用Myisam存储更好?想到就做,先导出表结构和数据,直接在sql里修改表引擎,再重新刷一遍。最后在页面上刷新接口,居然只需要1s多就返回了!犀利!

        然后其他接口慢大概就是一些比较低级的问题了:

       1. 大表查询不加索引

       2. 多表关联查询甚至3张,4张表一起join(我只想说这种人真是懒到家了)

       3. 一个接口封装了好几个方法,有些方法已经查询过的数据,其他方法又查了一遍

       4. 返回树结构数据时直接在mybatis的xml里递归查询(懒!)       

       5.  一些字段包含大量content文本,一股脑用select * 捞出来

       6.  在java循环里查询数据库(懒)

       7.   时间范围查询不走索引,可以使用时间戳代替

       8.  用大表去驱动小表查询效率低(有个最简单的写法,不要用join on,直接逗号去隔开就行了,让mysql去自行判断)

     

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口响应优化方案 的相关文章

随机推荐

  • 查看当前SHELL的种类

    shell种类 shell种类常见的有sh bash csh zsh tcsh等 方法 echo 0
  • 【C语言程序设计】C语言渔夫打鱼晒网问题!

    如果一个渔夫从 2011 年 1 月 1 日开始每三天打一次渔 两天晒一次网 编程实现当输入 2011 1 月 1 日以后的任意一天 输出该渔夫是在打渔还是在晒网 实现过程 1 自定义函数 leap 用来判断输入的年份是否是闰年 2 自定义
  • 软件测试---用例篇

    软件测试 用例篇 测试用例 Test Case 概念 是为了实施测试而向被测试系统提供的一组集合 这组集合包括 测试环境 操作步骤 测试数据 预期结果等要素 好的测试用例是不熟悉业务的人也能根据用例很go准 用例表达清楚 无二义性 不能出项
  • 自增与自减运算符号&&赋值运算符

    自增运算符为 其功能是使变量的值自增1 自减运算符为 其功能是使变量值自减1 它们经常使用在循环中 自增自减运算符有以下几种形式 注意 无论是a 还是 a都等同于a a 1 在表达式执行完毕后a的值都自增了1 无论是a 还是 a都等同于a
  • Unsafe学习

    一 介绍 一个管理内存的类 Unsafe类是 final 的 不允许继承 且构造函数是private的 使用单列模式模式获取类对象 1 1 测试的类 public class UnsafeBean private static int st
  • 计算机程序存储在哪里,计算机正在运行的程序存放在哪里?

    计算机正在运行的程序存放在RAM 内存 里 RAM是与CPU进行沟通的桥梁 计算机中所有程序的运行都是在内存中进行的 因此内存的性能对计算机的影响非常大 计算机正在运行的程序存放在RAM 内存 里 RAM是与CPU进行沟通的桥梁 计算机中所
  • 使用Requests库来进行爬虫的详解

    Requests是用Python编写 基于urllib 采用Apache2 Licensed开源协议的HTTP库 它比urllib更方便 可以节约我们大量的工作 完全满足HTTP测试需求 安装 pip3 install requests 使
  • 【知识普及】神经网络架构搜索(Neural Architecture Search,NAS)

    文章目录 1 背景引入 2 网络架构搜索 NAS 2 1 NAS 搜索策略 2 1 1 基于强化学习 2 1 2 基于进化算法 2 1 3 基于梯度的方法 2 2 NAS 加速 2 2 1 层次化表示 2 2 2 权值共享 2 2 3 表现
  • 教你一招删除休眠文件hiberfil.sys节省大量C盘空间

    教你一招删除休眠文件hiberfil sys节省大量C盘空间首先分清SLEEP睡眠和HIBERNATE休眠两个概念 我们常用的是SLEEP功能 也就是电脑经过一定时间后 进入低功耗状态 工作态度保存在内存里 恢复时1 2秒就可以恢复原状态
  • 最新配置安装的centos7,解决xshell连接问题,安装docker

    配置初始的centos7 1 更新yum yum update y 2 安装vim yum install y vim 3 解决xshell连接显示警告 The remote SSH server rejected X11 forwardi
  • 用深度学习和CNN进行年龄识别

    DIP大作业 用深度学习和CNN进行年龄识别 基于深度学习的方法 基本步骤 深度学习方法 1 10 需求分析 系统设计 环境搭建 2 10 数据集及预处理 3 40 卷积神经网络模型设计 模型程序编写 模型训练 模型测试 4 30 实验结构
  • OpenWRT安装管理界面中文包

    如果刚刷的openwrt18点多的没有中文界面 用ssh连接路由后用opkg安装 root openWRT opkg install luci i18n base zh cn Unknown package luci i18n base z
  • 顺序栈——基础

    时间限制 1000ms 内存限制 256M 实验目的 编写代码 实现一个简单的顺序栈 实验要求 1 每个栈元素是一个union类型 例如 union unData 栈元素的数据类型为Union Union共用同一块存储空间 int d ch
  • 分布式任务 + 消息队列框架 go-queue

    为什么写这个库 应用场景有哪些 如何使用 总结 为什么要写这个库 在开始自研 go queue 之前 针对以下我们调研目前的开源队列方案 beanstalkd beanstalkd 有一些特殊好用功能 支持任务priority 延时 del
  • 文献学习-联合抽取C-Joint Extraction of Biomedical Entities and Relations based on Decomposition and Recombio

    论文信息 1 题目 Joint Extraction of Biomedical Entities and Relations based on Decomposition and Recombination Strategy 基于分解重组
  • QT 编码格式问题

    一 QT客户端与服务端通信 客户端先将数据进行序列化xml形式 然后利用SharpZipLib GZip Compress进行压缩 转换成Base64格式 源数据 Function GetSysTime IsMutipleReturn fa
  • 脑筋急转弯-3

    小明爱捉迷藏 却总被人找得到 为什么 答案 因为他总是喊着 我在这里 什么东西你越给它 它变得越短 答案 蜡烛 小华拿着空杯子站在雨中 为什么他的头发却没有湿 答案 因为小华是个雨伞销售员 他用雨伞遮住了头发 什么桥不能过 答案 音乐桥 因
  • spring cloud gateway集成sentinel并扩展支持restful api进行url粒度的流量治理

    sentinel集成网关支持restful接口进行url粒度的流量治理 前言 使用网关进行总体流量治理 sentinel版本 1 8 6 1 cloud gateway添加依赖 2 sentinel配置 3 网关类型项目配置 4 通过zk事
  • VUE之Vxe-table动态生成多级表头及后端返回数据的处理

    需求 1 第一列为正常列 2 第二列开始为动态生成列 根据接口返回数据生成 3 最后一列为编辑列 步骤 写入动态html模板
  • 接口响应优化方案

    最近收到客户反映系统卡顿严重 然后让他截图看了下 最长响应时长居然高达16s 其他3s 4s的接口一大堆 简直是恐怖 简单来说 这个耗时16s的接口其实是统计一张历史数据表里的数据 这张表大概有三百多万条数据 日增长1万左右 因为客户要求最