go database/sql包sql.Open不是长连接
2015-09-08 16:29
519 查看
sql.Open 不会创建连接 ,只会创建一个DB实例,同时会创建一个go程来管理该DB实例的一个连接池(是长连接,但不是在Open的时候创建)。 在调用Begin()取一个连接,回滚或者提交得时候归还。如果你直接使用时Exec()执行,则每次会从连接池里面取出一个连接,到Exec执行完毕的时候归还。可以通过参数来调节连接池的大小。
golang sql包已经做了并发处理,自己通过channel的方式维护了一个连接池,所以没有必要在go程中加锁共享。
关于每次sql.Open,我觉得应该是一个不恰当的做法,这会导致连接得不到重用,并产生过多的短时间关闭的连接,给数据库造成没必要的压力。
golang sql包已经做了并发处理,自己通过channel的方式维护了一个连接池,所以没有必要在go程中加锁共享。
关于每次sql.Open,我觉得应该是一个不恰当的做法,这会导致连接得不到重用,并产生过多的短时间关闭的连接,给数据库造成没必要的压力。
相关文章推荐
- sql中top使用方法
- SQL Server 2016 CTP2.3 的关键特性总结
- [转]Sql Server 2005中的架构(Schema)、用户(User)、登录(Login)和角色(Role)
- sql server 2008 中的架构(schame)理解
- SQL SERVER 插入数据获取自增ID,SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY的比较
- 安装plsql developer 11
- SqlBulkCopy批量数据插入
- PLSQL Developer使用技巧整理
- zabbix监控mysql
- go-xorm使用mssql的小实例
- godbc中使用mssql的小实例
- PL/SQL中LOOP循环控制语句
- SQL Server 2016 CTP2.3 的关键特性总结
- PL/SQL Developer如何连接64位的Oracle图解
- openfire配置标准数据库(mysql)
- 2015年9月2日 安装PL/SQLDeveloper
- MySQL 高可用架构在业务层面的分析研究
- PL/SQL DEVELOPER执行计划的查看
- mysql open files
- SQL Server 变更数据捕获(CDC)监控表数据