golang 连接池mysql
package main import ( "database/sql" "fmt" "github.com/gin-gonic/gin" _ "github.com/go-sql-driver/mysql" "log" ) var Db *sql.DB func init() { fmt.Println("系统启动的时候就加载(并不是用户访问的时候加载) 因为连接池 只是用户使用的时候就会建立连接 用完返回") var err error Db, err = sql.Open("mysql", "xxx:(1111:3306)/xxxx") if err != nil { log.Panicln("err:", err.Error()) } Db.SetMaxOpenConns(0) Db.SetMaxIdleConns(0) } func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { fmt.Println("Hello, World1!") var err error result, e := Db.Exec("insert into xxxx(name, phone) values (?,?);", "姓名", "手机号") if e != nil { log.Panicln("user insert error", e.Error()) } id, err := result.LastInsertId() if err != nil { log.Panicln("user insert id error", err.Error(), id) } c.JSON(200, gin.H{ "message": "pong1", }) }) r.GET("/pings", func(c *gin.Context) { fmt.Println("Hello, World2!") }) r.Run(":8082") // listen and serve on 0.0.0.0:8080 }
并发1000测试 cpu占用10%