为了账号安全,请及时绑定邮箱和手机立即绑定

mysql模块的一些问题,关于连接池的

mysql模块的一些问题,关于连接池的

慕婉清6462132 2018-11-21 14:13:37
关于npm包 mysql官方示例代码的一点疑惑:首先看第一段代码:可以看到 查询后,调用connection.end()断开连接;再看第二段代码:这里面查询完成后调用: connection.release();问题1 如果这两段代码:第一段不调用connection.end();第二段不调用connection.release();会产生什么后果呢?2、这俩有什么区别呢?3、这两段代码有什么区别呢,这个连接池该怎么理解呢?个人理解:连接池可不可以理解为缓存呢,查询了某条数据,第二次查询相同数据直接在缓存里面去取,也就是池子里;
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

1、对数据库的操作一定是同步阻塞的,因为决不允许多个连接同时操作一条记录这种情况的发生,想要操作数据库,必须要先建立连接,而数据库也不允许无限制的建立多个连接,如果某个连接操作完不断开或释放连接,就会影响到后续连接的建立和使用,这对于高并发的情况是需要避免的。
2、connection.end()和 connection.release()的作用都是释放当前连接,但对象不同,前者针对的是普通的连接,而后者针对的连接池。
3、连接池确实有缓存的作用,但是其缓存的不是某条操作取出的具体数据,而是缓存的连接本身,这样当下次操作数据库时就不再需要不停的建立连接和销毁连接了。

查看完整回答
反对 回复 2018-12-15
  • 1 回答
  • 0 关注
  • 513 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信