当goruntine连接操作数据库时,是否可以所有goruntine共用一个数据库连接呢?

例如,当使用*sql.DB对象操作数据库时,或者使用其他数据库驱动(例如mongo-driver啦,redis-go啦等),如果所有goruntine共用一个数据库连接对象对数据库进行操作的话,是否会有安全性或者其他方面的问题呢?谢谢大家

阅读 3k
2 个回答

本来就是所有协程共用一个连接池的。当你从连接池拿一个连接时内部会加锁,不用担心线程安全问题。

全局可以公用一个mysql连接,但这个mysql连接长时间不使用有可能与服务器断开。
安全期间,可以一个会话用一个连接(从mysql连接池中获取);
更加稳定和安全,可以一个查询用一个连接(从mysql连接池中获取);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题