1. 问题背景
线上出现内存报警,通过dump文件,MAT分析,发现mysql-connector-java 有内存泄漏问题
2.问题分析

 然后看大对象列表,NonRegisteringDriver 对象确实占内存比较多,里面村的数据库连接的虚引用占比较多
3.解决方案
升级mysql-connector-java版本至8.0.31以及以上的版本,在java启动命令添加命令行,
-Dcom.mysql.cj.disableAbandonedConnectionCleanup=true
如下图:
java   -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true -jar app.jar 
这样,生成数据库连接时就不会产生虚引用












![[MySQL#10] 索引底层(1) | Page | 页目录](https://img-blog.csdnimg.cn/img_convert/17717b00404c6175a2c6aabcf2bef87c.png)






