接口优化理论
2024-05-10 09:50:57 0 举报
AI智能生成
接口优化方案理论
作者其他创作
大纲/内容
10、索引优化思想
SQL是否添加索引
使用explain执行计划查看
where、order by、group by 后字段添加索引
索引是否生效
隐式类型转换,索引实效
查询条件包含OR,可能导致索引实效
like通配符可能导致索引实效
查询条件不满足联合索引的最左匹配原则
在索引上使用内置函数
对索引列进行运算(+、-、*、/)
索引字段使用(!= 、<>),索引可能实效
索引字段使用 is null,is not null 索引可能实效
左右链接,关联的字段编码格式不一样
优化器选错了索引
索引建立是否合理
删除冗余和重复索引
索引一般不要超过5个
索引不适合建在大量重复数据的字段上
适当使用覆盖索引
如果使用force index强制走索引,慎重考虑索引和理性
11、SQL优化思想
select 具体字段而不是 select *
多用limit
尽量用union all 替换union
优化group by
优化order by
小表驱动大表
字段类型使用合理
优化limit分页
exist & in的合理使用
join关联的表不易过多
delete + in 子查询不走索引
in元素不要过多
12、避免大事务思想
RPC远程调用不要放到事物中
查询相关的操作,尽量放到事物之外
事务中避免处理过多的数据
13、优化分页思想
标签记录法
延迟关联法
14、程序结构优化
调整顺序
减少对象创建
减少重复数据查询
逻辑实现算法
15、传输内容优化
压缩传输内容
16、海量数据处理
使用ES、Hbase
17、线程池设计合理
核心线程数过小,达不到并行效果
阻塞队列设计不合理,可能回OOM
线程池不区分业务隔离,可能核心业务被边缘业务拖垮
拒绝策略(DiscardPolicy、DiscardOldestPolicy)使用不当,引起阻塞或者数据错误
CallerRunsPolicy 结合ThreadLocal上下文线程丢失
线程池共用,导致死锁
18、机器问题
fullGC
线程打满
接入限流
太多IO资源没关闭
1、批量思想
2、异步思想;耗时操作、考虑异步执行
3、空间换时间,恰当使用缓存
4、预取思想,提前初始化到缓存
5、池化思想(连接池);预分配循环使用
6、事件回调思想;拒绝阻塞等待
7、远程调用由串行改为并行
8、锁力度避免过粗
9、切换存储方式,文件中间暂存数据
0 条评论
下一页