Home >Database >Mysql Tutorial >How to Effectively Implement MySQL Connection Pooling in Node.js?
Effective MySQL Connection Pooling with Node.js
To achieve optimal performance when accessing a MySQL database using Node.js, implementing connection pooling is crucial. This article demonstrates an effective approach to structuring your application for this purpose using the node-mysql module.
Connection Pooling Module
The example provided in the question creates a connection pool using the following code:
<code class="javascript">var pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'root', database: 'guess' });</code>
This establishes a set of ready-to-use connections that can be acquired and released as needed, eliminating the overhead of creating and destroying individual connections for each query.
Database Queries
To execute a query, you can require the mysql module and initialize a connection:
<code class="javascript">var mysql = require('../db/mysql').pool; var test = function(req, res) { mysql.getConnection(function(err, conn) { conn.query("select * from users", function(err, rows) { res.json(rows); }) }) }</code>
Return Connection Only
To simplify accessing the connection, you can modify the exports section of your mysql module as follows:
<code class="javascript">var pool = mysql.createPool({ ... }); var getConnection = function(callback) { pool.getConnection(function(err, connection) { callback(err, connection); }); }; module.exports = getConnection;</code>
With this modification, you can obtain the connection by calling getConnection instead of pool.getConnection.
Releasing Connections
After completing a query, it's essential to release the connection to return it to the pool:
<code class="javascript">connection.release();</code>
Failure to release connections can lead to holding, which can eventually exhaust the pool and degrade performance.
Conclusion
By employing connection pooling and following these best practices, you can establish an efficient connection management mechanism for your Node.js application. This approach allows for seamless and optimized access to your MySQL database, ensuring optimal performance and scalability.
The above is the detailed content of How to Effectively Implement MySQL Connection Pooling in Node.js?. For more information, please follow other related articles on the PHP Chinese website!