在使用node链接mysql的时候需要使用mysql模块去创建连接,而mysql模块创建连接有两种方法:createConnection()与createPool(),接下来我们来说说这两种函数的区别。
createConnection
()
方法:createConnection
方法用于创建一个单独的 MySQL 连接。- 每次调用
createConnection
都会创建一个新的连接对象,该连接对象与数据库建立连接,并且只能由一个客户端使用。 - 当连接不再需要时,需要手动调用
end
方法来关闭连接。 - 适用于简单的、低并发的应用场景。
const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'mydb' }); connection.connect(function(err) { if (err) throw err; console.log('Connected to MySQL database'); // 执行数据库操作 // ... connection.end(); // 关闭连接 });
createPool()
方法:createPool
方法用于创建一个连接池,连接池中包含多个可重用的连接。- 连接池允许多个客户端同时使用连接,提高了并发性能。
- 连接池会自动管理连接的分配和释放,可以避免频繁地创建和销毁连接。
- 适用于高并发的应用场景。
const mysql = require('mysql');
const pool = mysql.createPool({
connectionLimit: 10,
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb'
});
pool.getConnection(function(err, connection) {
if (err) throw err;
console.log('Connected to MySQL database');
// 执行数据库操作
// ...
connection.release(); // 释放连接回连接池
});
在上述代码中,我们使用 createPool
方法创建了一个连接池,并通过 getConnection
方法从连接池中获取一个连接。在连接使用完毕后,我们调用 release
方法将连接释放回连接池。
总结:
createConnection
适用于简单的、低并发的应用场景,需要手动管理连接的创建和关闭。createPool
适用于高并发的应用场景,连接池自动管理连接的分配和释放,提高了并发性能。