跳转至

问题集

①、公司代码一堆的for循环里面执行SQL语句,怎么优化?

这个其实很简单,批量插入是有MyBatis-Plus集成好的API可以使用的,如果是有一点并发的插入数据量多的,也是可以使用 线程池来异步调用,分批插入数据,使用JDBC的executeBatch()方法(参考开源框架easyQuery),分多少批次是需要测试的,考虑到的很多 是一个数学上的问题,最后是一个泊松分布。

但是这是技术上的,当一个项目到处都是这样的代码,大家都不怎么注意去优化,怎么快实现功能即可,而你无权也没有时间搞重构代码的活, 自己要做的是什么呢?其实也不能怪同事,怪架构,项目功能排期紧,大领导又不知道啥是技术的,和合作伙伴的合同也是拖在那里迟迟不签约, 代码质量确实难好,这本就是相悖的——好的代码有一个致命缺点:花时间。

而这个问题for循环问题,是历史遗留么?它其实是举手之劳的事,但是版本代码到处都充斥着,只能说还是个人不注意吧。

②、for循环里面执行openfeign远程调用其他服务的接口,怎么优化?

只能是优化被调用接口逻辑,参数传全,不分批次传

③、for循环里面调用第三方接口,该接口会保存数据,怎么优化?

能和第三方交流改善一下接口就交流。

④、线程池执行任务

⑤、代码结构优化

客户 供应商 开发商

策略模式优化服务,Map+函数式接口改善

IDEA自带工具分析火焰图,查看方法执行效率

⑥、没法集成搜索引擎的情况下,怎么实现一个类似于淘宝搜索的搜索服务。

只能用MySQL的like来实现了,但是要好用,还要搞全文索引,倒排索引,做分词处理,还要做缓存,怎么样都是难活。