go database/sql包sql.Open不是长连接
来源:互联网 发布:如何看懂软件 编辑:程序博客网 时间:2024/05/24 07:25
sql.Open 不会创建连接 ,只会创建一个DB实例,同时会创建一个go程来管理该DB实例的一个连接池(是长连接,但不是在Open的时候创建)。 在调用Begin()取一个连接,回滚或者提交得时候归还。如果你直接使用时Exec()执行,则每次会从连接池里面取出一个连接,到Exec执行完毕的时候归还。可以通过参数来调节连接池的大小。
golang sql包已经做了并发处理,自己通过channel的方式维护了一个连接池,所以没有必要在go程中加锁共享。
关于每次sql.Open,我觉得应该是一个不恰当的做法,这会导致连接得不到重用,并产生过多的短时间关闭的连接,给数据库造成没必要的压力。
0 0
- go database/sql包sql.Open不是长连接
- go-database-sql-tutorial
- [go] database/sql包执行生成的SQL语句,遇到Incorrect Integer错误
- go database/sql 源码分析(一)sql包设计哲学
- go database/sql 源码分析(二)driver包设计哲学
- go-mysql: database/sql 接口适配
- go database/sql 源码分析 -题外篇
- [GO]连接Sql Server 操作
- go database/sql 源码分析(三)sql.DB数据结构
- go database/sql 源码分析(四)sql.Stmt数据结构
- DATABASE SQL
- [sql] database
- eBay open sources a big, fast SQL-on-Hadoop database
- ODBC连接sybase sql anywhere open server
- OPEN SQL
- Open Sql
- 关于Golang中database/sql包的学习笔记
- PL/SQL Developer 连接Oracle Database 11g R2配置
- Arrray 中的map和filter 函数的使用
- iOS 万能跳转界面方法(runtime实用篇一)
- linux学习-pipe
- Please explain about: insertable=false, updatable=false
- CentOS iptables防火墙的基本应用讲解
- go database/sql包sql.Open不是长连接
- JS-layer.js基础参数
- CentOS 中 make: g++ command not found
- 递归
- 新入门之Mybatis
- Algorithms—110.Balanced Binary Tree
- Spring MVC事务配置
- 注销、关机、重启计算机源码
- java程序员必须学会的各种命令