接口为什么会执行的很慢?

当一个接口执行很慢的时候,排除网络,服务器的问题之外应该从哪里去找问题呢?

1,检查代码逻辑,查看是否会存在死循环,或者存在大量无用的循环,这就需要在业务代码层面去优化。

2,是否出现了数据库死锁或者分布式项目中出现了死锁。

3,是否sql编写的太过复杂,链接太多,关键字使用不当都会导致执行效率降低。

4,是否使用了合适的索引,或者说因为查询条件的书写没有注意导致mysql没有去使用有索引的字段的索引,例如不满足复合索引的最左原则,模糊查询的通配符这些都会导致索引失效。可以使用mysql的执行计划去查看是否使用了索引,使用了哪些索引,子查询有哪些去分析。

3,还有一种情况就是mysql在刷新脏页。这种情况的出现一般是接口大部分时间都是正常的,突然很慢的情况。大家都知道mysql是不会实时同步数据库操作到磁盘上去,它会把操作记录在

redo log中,一旦redo log写满了就会去刷新操作到磁盘,这个时候就会暂停其他操作,暂时阻塞,导致你的sql语句执行很慢。

目前只总结了部分思路,后续会继续补充。。

新手练级,请多多指教

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值