![見出し画像](https://assets.st-note.com/production/uploads/images/87716360/rectangle_large_type_2_e78ca8c9a11fc87f577b8cc53681e78d.png?width=1200)
ポートフォリオ重かった話
当時の状況
RDSを見回りに行くと、およそ自分がポートフォリオを確認したタイミングからMySQLのコネクションが張りっぱなしでした。
以下、show processlist;の結果です。
![](https://assets.st-note.com/img/1664196069407-gcSbss0qIi.png)
![](https://assets.st-note.com/img/1664196506563-UnyPIHe3Jh.png?width=1200)
解決の道
まず確認すること
今回はGo言語で初めてDBを使った。そして明示的にコネクションのCloseをしていなかった。
というわけでGoサーバーへのアクセスが原因の場合、リロードを増やせばコネクションも同じ量増えるはず。
確かめてみた。
増えた。
gormの仕様を確認
gorm.DBにはclose関数がないことがvscodeのサジェストで分かりました。
そのためググりました。
ありました。
解決
gormからsql.DBを取得し、閉じる。
// コネクション開始
db = gorm.Open(...)
...
// コネクションを閉じる
sqlDB, _ := db.DB()
sqlDB.Close()
感想
やっぱCloseはありましたね。よし。
この記事が気に入ったらサポートをしてみませんか?