庆宇笔记 - GOLANG
type: channel
link: http://qingyu.me/category/golang.html
items: GO SQL MySQL driver解读

GO SQL MySQL driver解读
type: item
date: 2020-12-07T14:01:00+08:00
description: GO标准库中的database/sql搭配社区开源的mysql驱动go-sql-driver/mysql，是我们常用的组合。标准库实现了什么Package sql provides a generic interface around SQL (or SQL-like) databases.抽象了统一的连接、读写、事务等操作，负责调用实际的driver与特定的数据库交互（比如MySQL、SQLlite、Oracle等）database/sql库维护了数据库连接池，它并发安全，可供多个协程并发调用。driver实现了什么与具体的数据库的交互过程怎么用用户代码直接调用标准库，同时指明使用哪个driver，使用之前要先注册driverimport ( "database/sql" "time" _ "github.com/go-sql-driver/mysql" ) // ... db, err := sql.Open("mysql", "user:password@/dbname") if err != nil { panic(err) } // See "Important settings" section. db.SetConnMaxLifetime(time.Minute * 3) db.SetMaxOpenConns(10) db.SetMaxIdleConns(10)