mysql连接池问题
node中MySQL的连接池问题 npm mysql Pooling connections MySQL模块提供了数据库连接池,但是node作为单线程,获取连接conn之后,不是应该执行查询,注册回调函数,返回conn给连接池,然后等待下一次查询调用。这样的话,node线程永远只会获取一个数据库连接,那连接池还有什么意义? 不知道我的理解对不对? 请指导!
3 回复
多个回调函数,同时查询数据库,就有用了。
对数据库连接池的实现机制不是很清楚,只是这个跟node的单线程是没关系的吧,node是单线程不代表所有其他进程也是单线程,数据库也是单线程。
首先,nodejs是单进程,不是线程。 这里得说 数据库查询 是一次I/O操作,会进入一个事件循环. 查询的请求发出,事件进入循环,等待响应,CPU 处理其他事务。 如果其他事务中也有数据库查询的话,可是连接仍然被上一个事件占领,那你说,连接池的作用有没有? 再说了,就算node单进程,可是它也有多进程操作的方式和框架啊,比如cluster, pomelo