有时间,只必要添加一个索引就能解决。导致接口性能题目的缘故起因多种多样,不同项目标不同接口,其缘故起因大概各不相同。
有时间,代码必要进行重构。
有时间,必须增加缓存。
有时间,必要引入一些中间件,比方消息队列(MQ)。
有时间,需进行分库分表。
有时间,必要拆分服务。
等等。
插播一条:假如你近期准备面试跳槽,发起在cxykk.com在线刷题,涵盖 1万+ 道 Java 面试题,险些覆盖了所有主流技能面试题、简历模板、算法刷题。一、索引优化
这条SQL语句是否已经加了索引?1.1 没加索引
加的索引是否生效了?
MySQL是否选择了错误的索引?
那么,如何检察索引是否生效呢?答案是:可以使用 EXPLAIN 命令,检察 MySQL 的执行筹划,它会体现索引的使用情况。
没错,有时间MySQL会选错索引。必要时可以使用 FORCE INDEX 来强制查询SQL使用某个索引。
插播一条:假如你近期准备面试跳槽,发起在cxykk.com在线刷题,涵盖 1万+ 道 Java 面试题,险些覆盖了所有主流技能面试题、简历模板、算法刷题。二、SQL优化
那么如何优化长途接口性能呢?3.1 串行改并行
那如何解决数据同等性题目呢?由于篇幅有限,本文就不展开具体说这块了,感兴趣的同学可以看我的另一篇文章《数据同等性》
那么,我们如何优化呢?我们可以通过批量查询来优化性能,淘汰数据库的查询次数。
这里有个必要注意的地方是:id集合的巨细要做限制,最好一次不要请求太多的数据。要根据实际情况而定,发起控制每次请求的记录条数在500以内。五、异步处理
核心逻辑可以同步执行,同步写库。非核心逻辑,可以异步执行,异步写库。上面这个例子中,发站内关照和用户操作日志功能,对实时性要求不高,即使晚点写库,用户无非是晚点收到站内关照,或者运营晚点看到用户操作日志,对业务影响不大,所以完全可以异步处理。
异步处理通常有两种主要方式:多线程和消息队列(MQ)5.1 线程池异步优化
插播一条:假如你近期准备面试跳槽,发起在cxykk.com在线刷题,涵盖 1万+ 道 Java 面试题,险些覆盖了所有主流技能面试题、简历模板、算法刷题。六、克制大事务
那么我们该如何优化大事务呢?为了克制大事务引发的题目,可以考虑以下优化发起:
假如有多个节点,如何加锁呢?7.2 Redis分布式锁
插播一条:假如你近期准备面试跳槽,发起在cxykk.com在线刷题,涵盖 1万+ 道 Java 面试题,险些覆盖了所有主流技能面试题、简历模板、算法刷题。八、分页处理
那么,这种情况下该如何优化呢?答案是:分页处理。
注意引入缓存之后,我们的体系复杂度就上升了,这时间就会存在数据不同等的题目如何解决数据不同等的题目,感兴趣的小伙伴可以看我的另一篇文章,《》
真的免费,假如你近期准备面试跳槽,发起在cxykk.com在线刷题,涵盖 1万+ 道 Java 面试题,险些覆盖了所有主流技能面试题、简历模板、算法刷题
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |