mysql 自带client 中执行show processlist state是executing,但Info中的Sql并不是正在执行的sql
某日半夜发现cpu占用率很高,原来后台在执行sql脚本,用show processlist打出来看。
| 7063 | root | 127.0.0.1:57370 | hjdang | Query | 2 | executing | SELECT id,goods_source_sn,goods_info_url,source,url_code,thumb_url,zhi_count,buzhi_count,star_count |
代码是:
@Override // @Transactional public void archiveCrawlItems() { log.info("archiveCrawlItems starting ....."); List<CrawlItem48h> historyItems = super.baseMapper.getItemsAfter48Hours(); log.info("getItemsAfter48Hours finish .{}",historyItems.size()); historyItems.stream().forEach(a -> { Long id = a.getId(); CrawlItemArchive item = BeanUtil.toBean(a,CrawlItemArchive.class); QueryWrapper<CrawlItemArchive> wrapper = new QueryWrapper<CrawlItemArchive>(); wrapper.eq("source",a.getSource()); wrapper.eq("goods_source_sn", a.getGoodsSourceSn()); CrawlItemArchive exist = crawlItemArchiveMapper.selectOne(wrapper); log.info("crawlItemArchiveMapper.selectOne finish . "); if(exist == null) { log.info("exist == null ."); crawlItemArchiveMapper.insert(item); }else { log.info("exist is {} .",exist.getId()); crawlItemArchiveMapper.updateById(exist); } crawlItem48hMapper.deleteById(id); }); }
其实现在执行的是查询结束后的循环插入的sql,但Info里显示的还是查询的语句。可能和spring 里的mysql 的连接还没释放有关。
喜欢艺术的码农
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人