美文网首页
数据库调优(1)

数据库调优(1)

作者: 代码不会写 | 来源:发表于2023-05-21 11:48 被阅读0次

1.场景一

腾讯调用我方接口进行url封禁和查询,并发要求50qps,测试同学使用jmeter压测时发现,查询封禁信息接口,构造20个并发后,发现查询响应变慢(>2000ms),导致再高的并发压不上去不满足客户需求。

2. 问题分析

通过查询日志,定位到该条sql语句耗时较长,通过explain分析该sql语句的执行计划:
explain select * from forbidden_info where guid ='5af50517-f11a-4370-9ca6-03aa61d39b37'

未优化前执行计划.png

下面来分析执行计划:

执行项 具体值 描述
select_type SIMPLE 是一个简单查询没有关联或者子查询
table forbidden_info 表名
type ALL 全表扫描
extra using where 未找到索引使用where条件过滤

通过以上执行计划分析发现该查询没有使用到索引,导致查询效率低。给guid添加索引后:alter table forbidden_info add index index_guid(guid); 查看执行计划

添加索引后的执行计划.png 具体分析:
执行项 具体值 描述
select_type SIMPLE 是一个简单查询没有关联或者子查询
table forbidden_info 表名
type ref 命中了非主键索引
possible_keys index_guid 可能使用到的索引
key index_guid 实际使用到的索引
key_length 603 表示索引使用的字节数
ref const 表示索引使用的字节数
rows 10 数据库认为需要检查的行数,估算值,非结果行数
extra using index condition 使用了ICP索引下推技术

添加索引后,查询耗时基本在毫秒级,整个接口的响应从2000ms下降到200ms左右

本次数据库调优涉及到数据库的索引,可以进一步思考,什么时候使用索引、索引失效的场景、慢sql如何发现、如何判断sql有没有使用到索引、索引下推技术等

相关文章

  • JVM调优

    1 调优层次 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代...

  • mysql调优和范式笔记!

    数据库调优的目标让数据库运行得更快,也就是说响应的时间更快,吞吐量更大。 调优维度: 调优方式: 三范式:1NF ...

  • 55-MySQL索引优化与查询优化

    一、数据库调优 1.1、调优维度 1、索引失效、没有充分利用到索引——索引建立 2、关联查询太多JOIN(设计缺陷...

  • mysql 二进制包安装

    1. 文档说明 简述mysql数据库基础安装配置手册,性能调优需要结合my.cnf的参数进行调优,将在其他文档中进...

  • mysql 源码编译安装

    1. 文档说明 简述mysql数据库基础安装配置手册,性能调优需要结合my.cnf的参数进行调优,将在其他文档中进...

  • mysql RPM包安装

    1. 文档说明 简述mysql数据库基础安装配置手册,性能调优需要结合my.cnf的参数进行调优,将在其他文档中进...

  • zabbix优化之进阶版

    官网调优 1. 数据库优化 1.设置数据库分区优化,buffer优化,hash优化, 说明:数据库分区优化的优点:...

  • Spark性能优化-开发调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 1. 开发调优 ...

  • Spark性能优化-数据倾斜调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 数据倾斜调优 1...

  • Spark性能优化-资源调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 资源调优 num...

网友评论

      本文标题:数据库调优(1)

      本文链接:https://www.haomeiwen.com/subject/urpasdtx.html