When should I use connection pooling with MySQL in NodeJS

Problem

Working with the Node-MySql module:

From my understanding multithreaded programs benefit more from pooling connections than singlethreaded ones. Is this true?

And if this logic proves true, what scenario is connection pooling beneficial in a Node.JS application?

Problem courtesy of: FredTheWebGuy

Solution

Whether single or multithreaded, pooling can still be beneficial in allowing open connections to be reused rather than being closed only to open another immediately after:

When you are done with a connection, just call connection.release() and the connection will return to the pool, ready to be used again by someone else.

The added benefit with multithreading is that the pool can also manage multiple, concurrent connections:

Connections are lazily created by the pool. If you configure the pool to allow up to 100 connections, but only ever use 5 simultaneously, only 5 connections will be made.

Though, to be clear, Node is multithreaded. It just uses a different model than seems to be typical -- 1 "application" thread which executes JavaScript and multiple "worker" threads handling the brunt of asynchronous I/O.

Solution courtesy of: Jonathan Lonowski

Discussion

There is currently no discussion for this recipe.

This recipe can be found in it's original form on Stack Over Flow.