SpringBoot启动超过10分钟--数据库篇

427 阅读1分钟

SpringBoot启动超过10分钟--数据库篇

背景

主要是有一天我本地启动超过四五分钟,甚至超过十分钟,耽搁我开发功能。于是我自己解决以及寻求他人帮助均未果,于是上报技术leader。其实我是知道是数据库有问题,因为最后一行提示是加载表,一直不动。

潜在因素

image.png

从这个日志我们能看得出是表加载,有6135张表,当时我也想过会不会是表太多。但是我没有过多细想,因为上午开发还是好好的。

分析问题

因为有一次我没关掉程序,干其他事去了,发现它最后启动好了。耗时14分钟。就可以断定表过多,于是我们删掉一些没用的表就好了,因为我们是分库,有一个库的表是按照天数来创建表的(潜在因素)。 image.png

总结 但是这种治标不治本,随着线上表越来越多,问题还是会暴露。

于是我查阅资料,最终发现这个是mysql数据库 每天都会有表进来这个数据库。启动的时候分表插件会加载分表数据;会导致启动时间过长;对业务使用没有影响;目前迁移到CLICKHOUSE 能解决这个问题 不需要加载分表信息; 目前是先删无用表,然后再用CLICKHOUSE来优化了