专栏首页Java探索之路工作记录二: 记录一次简单的SQL优化过程

工作记录二: 记录一次简单的SQL优化过程

在工作时, 和同事一起遇到了一个关于SQL优化方面的问题, 现在将解决过程记录如下

项目缺陷描述

项目分析思路

  1. 首先F12进入开发者模式, 查看最费时的请求
  1. 然后利用restful风格接口工具集( RestfulToolkit ) : 用于将前端请求的url与后端的controller对应. 安装后的快捷键( Ctrl+\ )

对应的controller方法如下,可以看到该方法将request的storeId设置为空, 下面又调用listCateByStoreId()方法, 我们可以通过ctrl+alt+listCateByStoreId 进入该方法的实现类

  1. 我们从listCateByStoreId()方法的实现类可以看出, 该方法的实现类要获取request对象的storeId, 而我们又没有设置,导致进行权标扫描

改进

  1. 通过封装的方法去查StoreId, 然后进行相关条件的判断
  1. 在数据库中为该字段添加索引. 我们在GoodsCate表中无法找到storeId,但在goods表中可以找到Store,因此我们需要在goods表中为goods表中为storeId字段添加索引

同理, 下面的两个请求优化如下

优化后的结果如下图, 可以看到后端的响应速度得到了很大的优化

SQL优化思路总结

①找出影响性能的关键所在 ②找出关键代码 ③找出关键代码执行的sql语句 ④初步分析优化sql语句,仅仅只查询主信息 ⑤通过使用explain关键字分析再次优化SQL语句 ⑥根据主信息的信息去并行查询不相互依赖的附属信息, 然后在代码中去组装这些信息

其他解决方法:

  • 开启慢查询, 可以在mysql目录bin下有个慢查询日志里看到SQL执行情况
  • 在where后面建立一个组合索引,提升多表和条件查询效率
  • 未完待续…

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JavaScript中的Event(事件)详解

    时间静止不是简史
  • MyBatis_resultMap的关联方式实现多表查询(一对多)、通过 Auto-Mapping 实现多表查询

    时间静止不是简史
  • Spring Data Jpa 异常:PropertyReferenceException: No property xxx found for type for type yyy

    在使用Spring Data Jpa 时, 将接口继承了JpaRepository接口后 ,仍然在接口下面写了接口的方法 (对Spring Data Jpa 不...

    时间静止不是简史
  • 开发和设计沟通有多难? - 你只差一个设计规范

    在网络上或是我们的日常工作中,经常会看到设计师和开发人员两大阵营的争论。设计师可能经常会遇到这样一些情况,当开发人员对着设计稿想实现一些效果时,会提出一大堆的问...

    奔跑的小鹿
  • 记一次对DM数据库的优化过程

    某年某月某日的一个下午,接收到监控服务器的一条告警短信:尊敬的运维工程师 XX,你好:“192.168.136.200”数据库服务器 CPU 异常,CPU 使用...

    JAVA日知录
  • Unity3D 物体移动方式总结

    在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position。

    bering
  • VirtuablBox 出错: VERR_SUPLIB_OWNER_NOT_ROOT 解决方法

    刚刚把 VirtualBox 升级, 从 3.2 到 4.0.4 后,虚拟机上的系统无法运行, 提示:

    RainMark
  • CS学习笔记 | 14、powerup提权的方法

    利用 PowerUp 进行提权需要首先导入 ps1 文件powershell-import PowerUp.ps1,再执行powershell Invoke-A...

    TeamsSix
  • ClickHouse分布式IN & JOIN 查询的避坑指南

    当数据表包含多个分片的时候,我们需要将普通的本地查询转换为分布式查询。当然,这个转换动作是不需要用户自己进行的,在ClickHouse里面会由Distribut...

    Nauu
  • SQL标准简介

    Table of Contents ---- SQL 的起源 SQL 的标准化 SQL 标准的历史 学习 SQL 标准 SQL 标准的符合性 SQL 的起源 ...

    腾讯数据库技术

扫码关注云+社区

领取腾讯云代金券