连接mysql有内存泄漏?

229469922 · · 3530 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

各位大牛,求帮忙! 问题描述: 1,并发10条请求,database/sql 连接池打开10个mysql连接,执行结束后,连接关闭,但内存不回收。 2,如果继续第1步,内存不会上升。 3,继续并发20条请求,则内存会再上升。 4,继续并发请求,如果并发数大于20,则内存上升,如果并发数小于20,则内存不会上升。 5,内存上升后,不会下降。 代码: ```go package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "io" "log" "net/http" ) var db *sql.DB func main() { var err error db, err = sql.Open("mysql", "root:123456@/test") if err != nil { fmt.Println(err) } defer db.Close() http.HandleFunc("/hello", Hello) err = http.ListenAndServe(":12345", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } } func Hello(w http.ResponseWriter, req *http.Request) { rows, err := db.Query("SELECT content FROM news WHERE id > 0 and id <= 10000") if err != nil { log.Fatal(err) } defer rows.Close() for rows.Next() { var content string if err := rows.Scan(&content); err != nil { log.Fatal(err) } } if err := rows.Err(); err != nil { log.Fatal(err) } io.WriteString(w, "done") } ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3530 次点击  
加入收藏 微博
1 回复  |  直到 2014-11-14 15:12:21
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传