首页 > 其他分享 >接口性能优化技巧

接口性能优化技巧

时间:2025-01-15 16:58:32浏览次数:3  
标签:20 技巧 接口 查询 索引 1000000 mysql 优化 分页

哪些问题会引起接口性能问题?

这个问题的答案非常多,需要根据自己的业务场景具体分析。这里做一个不完全的总结:

  • 数据库慢查询

    • 深度分页问题

    • 未加索引

    • 索引失效

    • join过多

    • 子查询过多

    • in中的值太多

    • 单纯的数据量过大

  • 业务逻辑复杂

    • 循环调用

    • 顺序调用

  • 线程池设计不合理

  • 锁设计不合理

  • 机器问题(fullGC,机器重启,线程打满)

问题解决

1、慢查询(基于mysql)

1.1 深度分页

所谓的深度分页问题,涉及到mysql分页的原理。通常情况下,mysql的分页是这样写的:

select name,code from student limit 100,20

含义当然就是从student表里查100到120这20条数据,mysql会把前120条数据都查出来,抛弃前100条,返回20条。当分页所以深度不大的时候当然没问题,随着分页的深入,sql可能会变成这样:

select name,code from student limit 1000000,20

这个时候,mysql会查出来1000020条数据,抛弃1000000条,如此大的数据量,速度一定快不起来。那如何解决呢?一般情况下,最好的方式是增加一个条件:

select name,code from student where id>1000000  limit 20

这样,mysql会走主键索引,直接连接到1000000处,然后查出来20条数据。但是这个方式需要接口的调用方配合改造,把上次查询出来的最大id以参数的方式传给接口提供方,会有沟通成本(调用方:老子不改!)。

1.2 未加索引

这个是最容易解决的问题,我们可以通过

show create table xxxx(表名)

查看某张表的索引。具体加索引的语句网上太多了,不再赘述。不过顺便提一嘴,加索引之前,需要考虑一下这个索引是不是有必要加,如果加索引的字段区分度非常低,那即使加了索引也不会生效。另外,加索引的alter操作,可能引起锁表,执行sql的时候一定要在低峰期(血泪史!!!!)

1.3 索引失效

这个是慢查询最不好分析的情况,虽然mysql提供了explain来评估某个sql的查询性能,其中就有使用的索引。但是为啥索引会失效呢?mysql却不会告诉咱,需要咱自己分析。大体上,可能引起索引失效的原因有这几个(可能不完全):

图片

需要特别提出的是,关于字段区分性很差的情况,在加索引的时候就应该进行评估。如果区分性很差,这个索引根本就没必要加。区分性很差是什么意思呢,举几

标签:20,技巧,接口,查询,索引,1000000,mysql,优化,分页
From: https://blog.csdn.net/cgk_ALEM/article/details/145106152

相关文章

  • 高效协作与工时优化的结合点在哪里
    在信息化高速发展的今天,如何提升团队的协作效率、优化工时管理,已经成为每个企业面临的挑战。在线文档协作工具因其实时共享、多端同步、权限控制等功能,成为现代企业数字化办公的重要一环。本文将分析在线协作工具如何助力办公室团队优化工时管理,从而实现高效办公。一、在线文档......
  • 深度剖析 GROUP BY 和 HAVING 子句:优化 SQL 查询的利器
    title:深度剖析GROUPBY和HAVING子句:优化SQL查询的利器date:2025/1/14updated:2025/1/14author:cmdragonexcerpt:在数据处理和分析的过程中,需要对收集到的信息进行整理和汇总,从而为决策提供依据。在SQL语言中,GROUPBY和HAVING子句是用于分组和过滤数......
  • Linux系统内存使用优化技巧
    目录交换空间(Swap)的优化禁用Swap降低swappiness值减少动态内存分配使用大页(Hugepage)优化数据访问,使用缓存和缓冲区使用堆栈缓存利用外部缓存组件使用cgroups限制进程内存使用创建cgroup限制内存使用调整OOMScore调整进程的OOM分数终止未使用的服务和......
  • 库存看板的实施策略与流程优化案例
    如何利用库存看板优化管理流程?在现代企业的管理中,库存管理是一个至关重要的环节。有效的库存管理可以帮助企业节约成本、提高运营效率、降低库存风险。库存看板作为精益管理的重要工具,为企业提供了一种可视化、透明化的库存管理方式。本文将深入探讨库存看板如何优化管理流程,在库......
  • 电商新年采购管理:优化策略与工具应用
    电商新年用品采购管理是一个涵盖多个环节和方面的综合性工作,以下是对该过程的详细解析:一、市场需求预测与采购计划制定市场调研:○深入了解新年期间消费者的购物偏好、购买习惯以及市场趋势。○分析历史销售数据,预测新年用品的潜在需求。采购计划制定:○根据市场需求预测,......
  • 国产化板卡设计原理图:2136-KC705E增强版基于FMC接口的 JFM7K325T PCIeX8 接口卡
    KC705E增强版基于FMC接口的JFM7K325TPCIeX8接口卡    一、板卡概述   本板卡基于FPGAJFM7K325T 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8、64bit DDR3容量2GByte,HPC的FMC连接器,板卡支持各种接口输入,软件支持windows,Linux驱动。    二、功......
  • DolphinScheduler项目管理页面加载缓慢?这样优化
    问题现象有时候,ApacheDolphinScheduler项目管理页面会发生加载不出来的问题,浏览器查看为[http://ip:12345/dolphinscheduler/projects?pageSize=10&pageNo=1&searchVal=]请求超时。解决思路查看海豚运行日志(未发现异常)tail/home/dolphinscheduler/api-server/logs/dolph......
  • OpenCV相机标定与3D重建(58)用于精细化优化由 cv::solvePnP 或 cv::solvePnPRansac 等
    操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述从3D-2D点对应关系出发,并基于一个初始解,精细化姿态(将物体坐标系中的3D点变换到相机坐标系的旋转和平移)。cv::solvePnPRefineVVS是OpenCV中用于精细化优化由cv::solvePnP或c......
  • OpenCV相机标定与3D重建(57)精细化优化由 cv::solvePnP 或 cv::solvePnPRansac 等函数
    操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述从3D-2D点对应关系出发,并基于一个初始解,精细化姿态(将物体坐标系中的3D点变换到相机坐标系的旋转和平移。cv::solvePnPRefineLM是OpenCV中用于精细化优化由cv::solvePnP或cv......
  • 3.4 Pandas 数据合并和连接:掌握数据整合的核心技巧
    3.4Pandas数据合并和连接:掌握数据整合的核心技巧在实际的数据分析工作中,数据往往分散在多个数据源中。为了进行全面的分析,我们需要将这些数据合并或连接在一起。Pandas提供了强大的工具来实现数据的合并和连接操作。本文将详细介绍如何使用Pandas进行数据合并和连接,帮......