Nodejs上的MySQL连接池

如果Node是单线程的,那么使用池来连接MySQL有什么好处呢?
如果是,我应该什么时候发布连接?

与整个应用程序共享相同的,持久的连接是不够的?

Nodejs是单线程的,正确的。 但它也是asynchronous的,也就是说单线程不用等待结果就会触发多个SQL查询。 结果只能通过callback来处理。 因此,使用具有多个连接的连接池是有意义的。 数据库可能是multithreading的,这使得并行化查询成为可能,尽pipe它们被连续触发。 但是,如果您不特别注意,则不能保证结果的处理顺序。

关于连接释放的附录

如果您使用连接池,则应从每个查询的池中获取/释放每个连接。 这里没有大的开销,因为池pipe理着底层连接。

  1. 从池中获取连接
  2. 询问
  3. 在callback释放连接回到池。