Golang学习实战笔记-基础 > golang实战之数据库
gorm 优化记录

在对一个grpc服务压力测试过程中发现 , 进程出现 mysql 连接不上的日志. 后来进入数据库中查看发现mysql 线程数已经占满 ,show processlist ,  

解决办法:

设置 gorm 空闲连接数,和最大连接数量.

db, e := NewDb(option.Driver, option.Dsn)
if option.MaxIdles > 0 {
db.DB().SetMaxIdleConns(option.MaxIdles)
}
if option.MaxOpens > 0 {
db.DB().SetMaxOpenConns(option.MaxOpens)
}


具体设置可以根据mysql 配置 , 服务数量,  sql 查询耗时, 每秒sql执行次数来确定.

一般最大连接数量 30就可以满足一个docker容器, 启动10个容器 所消耗的连接数就是 30*10.