互联网接口性能优化经验

接口性能优化

接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。

该问题说简单也简单,说复杂也复杂。

有时候,只需加个索引就能解决问题。

有时候,需要做代码重构。

有时候,需要增加缓存。

有时候,需要引入一些中间件,比如mq。

有时候,需要需要分库分表。

有时候,需要拆分服务。

等等。。。

导致接口性能问题的原因多种多样,不同的项目不同的接口,原因可能也不一样。

本文我总结了一些行之有效的,优化接口性能的办法,给有需要的朋友一个参考

1.索引

接口索引优化是第一能想到得,也是优化成本较低的,通过查看线上日志或者监控报告,查到某个接口用到的某条sql语句耗时比较长

你可能会发生疑问:

  1. sql语句加索引了吗?

  2. 加的索引生效了吗?

  3. mysql选错索引了吗?

1.1 检查并添加索引

sql语句中where条件的关键字段,或者order by后面的排序字段,忘了加索引,这个问题在项目中很常见, 前期主要完成业务需求。

项目刚开始的时候,由于表中的数据量小,加不加索引sql查询性能差别不大。

后来,随着业务的发展,表中数据量越来越多,性能就就逐渐显现出来,不得不考虑增加索引了。

ALTER TABLE命令可以添加索引:

ALTER TABLE order ADD INDEX idx_name (name);

也可以通过CREATE INDEX命令添加索引:

CREATE INDEX idx_name ON order (name);

mysql中如果想要修改索引,只能先删除索引,再重新添加新的

ALTER TABLE order DROP INDEX idx_name;

DROP INDEX idx_name ON order;

1.2 检查索引是否生效

1、通过命令方式查看索引生效:explain plan for select * from order where code=‘002’;

2、客户端(DBeaver或者PLSQL)

//补充截图

3、索引是否生效,如果索引已经创建,很大可能索引没有生效;常见索引失效的原因:

在这里插入图片描述

2.sql 优化

优化索引,没啥效果,那就接着优化sql,毕竟改sql的成本优于代码

下面整理部分小技巧:

在这里插入图片描述

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值