一个普遍的共识:当性能成为瓶颈的时候
优秀的程序员可以在设计之初就想到合理的方案(投入产出比的权衡)
如果某个优化提效甚微,但是投入很大,不应该进行优化,或者换个方案
围绕数据:
输入、输出、运算(算法)
减少读写,优化读写速度;在加快计算处理速度
核心思想
空间换时间, 单一职责
同步转异步 (异步生成报表、离线数据统计、异步日志)
串行转并行 (多个人干, 消息队列)
化零为整 (数据库批量插入 批量删除, 批量查询)
化整为零 (负载均衡, 分库分表, 读写分离, 服务器集群, 加缓存)
知道原理/根据技术特点去优化(深翻页)
批量查询
实际开发中,如果需要查 N 条记录,然后执行后续逻辑,
先用批量接口一次查询好,然后再 for 循环处理,而不是 for 循环里查 DB 或者 执行 HTTP调用
负载均衡
主要作用是将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题
=================================================
思路很重