node.js中mysql连接为什么要使用连接池

一直看他们说node.js mysql单连接有多耗多耗性能,看他们代码,好家伙,每次都连接和使用,使用完后关闭。
问题是,node.js是单线程的,mysql连接可以全局保存,使用完之后可以不关闭啊。
所以现在有个疑问,既然mysql可以保持全局连接复用,真的有必要使用连接池?

阅读 3k
2 个回答
  • 试想一个场景。有两个请求A和B,都需要操作数据库,A请求先过来,操作数据库需要10秒钟,此时程序处于阻塞状态,等待A请求的数据库操作结束,此时,B请求过来了,如果像你说的,全局只使用一个链接,那么B请求也要等着A结束才能继续执行,是不是?。。。。如果使用了连接池呢?
  • 其次,你说的代码里的创建/关闭,是指和数据库直连?还是创建/关闭 和连接池的链接? 如果是前者,那是你们代码的问题。

如果只考虑并发要求不高的话确实可以,就用同一个连接对象.

举个例子吧;

比如你去买早餐(煎饼果子), 但是跟你一同前去的10个人, 如果店主没有预先做好一些,而是现做这很耗时间(建立连接花费时间、客户端等待也耗时间), 可能最后你们都走了

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