springboot项目启动慢问题排查

springboot项目,随着时间的推移,启动耗时逐步增加,从几分钟慢慢的达到30多分钟,有点恐怖!

项目中用到技术:hibernate、redis、kafka、线程池等,启动慢的环境使用的是mysql数据库!

1.最开始查看的启动日志,是在输出:

org.hibernate.id.UUIDHexGenerator        : HHH000409: Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values; consider using org.hibernate.id.UUIDGenerator instead

后停滞,等相当长时间后继续输出:

o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'taskExecutor'

怀疑是创建kafka、线程池等导致耗时,通过去掉相关对象创建,耗时仍无改观!

2. 启动项目,打印日志级别改为debug,查看更详细信息:

发现:大量的alter table 增加外键!奇怪,不是第一次启动项目,mysql库中的表早已创建好,为什么每次都要重复alter?

查看mysql相关表发现无外键,表引擎为MyISAM!此引擎不支持外键!

在使用hibernate自动创建表时,mysql中建表使用的MyISAM引擎,查看配置:

dialect:应使用org.hibernate.dialect.MySQL5InnoDBDialect

这就解释了:为什么orcle环境下没有此问题,而mysql就有,其随着时间的推移,表中数据逐渐增加,在启动时alter table耗时严重!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值