golang 连接池mysql

Posted newmiracle宇宙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:xx@tcp(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%

以上是关于golang 连接池mysql的主要内容,如果未能解决你的问题,请参考以下文章

[Go] golang实现mysql连接池

golang 连接池mysql

golang 连接池mysql

golang 连接、操作完mysql, 对mysql的连接会自动关闭,还是必须要手动关闭?

golangmysql可扩展分表代码

golang sql 包连接池分析