MySQL Nodejs 上的连接池
MySQL connection pool on Nodejs
如果Node是单线程的,使用池连接有什么好处MySQL?
如果是,我应该什么时候释放连接?
与整个应用程序共享相同的持久连接还不够吗?
Nodejs 是单线程的,对吧。但它也是异步的,这意味着单个线程会在不等待结果的情况下触发多个 sql 查询。结果仅通过回调处理。因此,使用具有多个连接的连接池是有意义的。数据库很可能是 multi-threaded,这使得并行查询成为可能,尽管它们是连续触发的。但是,如果您不特别注意,则无法保证结果的处理顺序。
关于连接释放的补充
如果您使用连接池,那么您应该 aquire/release 每个查询都来自池中的每个连接。这里没有大的开销,因为池管理底层连接。
- 从池中获取连接
- 查询
- 在回调中释放连接回到池中。
如果Node是单线程的,使用池连接有什么好处MySQL?
如果是,我应该什么时候释放连接?
与整个应用程序共享相同的持久连接还不够吗?
Nodejs 是单线程的,对吧。但它也是异步的,这意味着单个线程会在不等待结果的情况下触发多个 sql 查询。结果仅通过回调处理。因此,使用具有多个连接的连接池是有意义的。数据库很可能是 multi-threaded,这使得并行查询成为可能,尽管它们是连续触发的。但是,如果您不特别注意,则无法保证结果的处理顺序。
关于连接释放的补充
如果您使用连接池,那么您应该 aquire/release 每个查询都来自池中的每个连接。这里没有大的开销,因为池管理底层连接。
- 从池中获取连接
- 查询
- 在回调中释放连接回到池中。