nodejs mysql2 sqlPool.pool = mysql.createPool() maxListeners 完整示例
时间: 2024-11-30 13:19:48 浏览: 1
Node.js 中的 `mysql2` 库通常用于操作 MySQL 数据库,而 `sqlPool` 的概念是指连接池,它可以管理数据库连接,避免频繁地创建和销毁连接,提高性能。当你想要限制连接池最大并发连接数时,可以使用 `maxListeners` 属性。
以下是一个完整的 `mysql2` 使用 SQL 连接池示例,并设置了 `maxListeners` 参数:
```javascript
const mysql = require('mysql2/promise');
const { Pool } = mysql;
// 创建连接池配置
const poolConfig = {
host: 'your_host',
user: 'your_user',
password: 'your_password',
database: 'your_database',
connectionLimit: 10, // 设置最大并发连接数,默认为无限
maxPoolSize: 5, // 设置最大空闲连接数
queueLimit: 0, // 如果达到最大连接数,则阻塞等待
waitForConnections: true,
acquireTimeoutMilliseconds: 60000, // 超时时间
};
// 创建并初始化连接池
let sqlPool;
try {
sqlPool = new Pool(poolConfig);
} catch (error) {
console.error('Error initializing connection pool:', error);
}
// 示例函数,使用连接池执行查询
async function queryWithConnection(query, params) {
try {
const connection = await sqlPool.getConnection();
let result;
try {
result = await connection.query(query, params);
} finally {
connection.release(); // 返回连接到池中,而不是关闭
}
return result;
} catch (error) {
console.error('Error executing query:', error);
}
}
// 设置 maxListeners 以限制监听事件的数量,比如防止过度接收连接请求导致内存溢出
sqlPool.maxListeners = 10; // 将最大监听数设置为 10,这里可以根据实际需求调整
// 使用 pool.query 或 queryWithConnection 来执行SQL语句
queryWithConnection('SELECT * FROM your_table', [])
.then(result => console.log(result))
.catch(error => console.error(error));
//
阅读全文