📜  const pool = mysql.createpool() - SQL (1)

📅  最后修改于: 2023-12-03 14:40:12.367000             🧑  作者: Mango

MySQL 连接池 - Node.js

简介

在 Node.js 应用中连接 MySQL 数据库是一个常见的需求。但是,每次请求都创建一个数据库连接是非常低效的,不仅会消耗大量的内存资源,还会导致应用运行速度变慢。为了解决这个问题,我们可以使用 MySQL 连接池。

MySQL 连接池是一个预先创建了多个数据库连接的集合,这样当应用需要连接数据库时,就可以直接从连接池中获取一个空闲的连接,使用完毕后再将其返回到连接池中,从而提高了数据库操作的效率。

创建连接池

使用 Node.js 中的 mysql 模块,我们可以很方便地创建 MySQL 连接池。下面是一个示例代码:

const mysql = require('mysql');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'my_database'
});

使用 createPool 方法可以创建一个连接池,传入一个配置对象作为参数。在配置对象中,我们需要指定数据库的 hostuserpassworddatabase 等信息,这些信息都是连接数据库必需的。

使用连接池

连接池创建好之后,我们就可以在应用中使用它来连接数据库了。下面是一个示例代码:

pool.getConnection((err, connection) => {
  if (err) throw err; // 处理异常
  connection.query('SELECT * FROM users', (error, results, fields) => {
    connection.release(); // 释放连接
    if (error) throw error; // 处理异常
    console.log(results); // 打印查询结果
  });
});

在使用连接池时,我们使用 getConnection 方法来获取一个数据库连接。getConnection 方法的回调函数中,第一个参数是错误对象 err,如果出现异常则会抛出该错误;第二个参数是一个数据库连接对象 connection,我们可以使用该连接对象来执行数据库操作。

在执行完查询操作后,需要使用 connection.release() 方法将连接释放掉,这样它就会返回到连接池中,供其他请求使用。

总结

使用 MySQL 连接池可以有效地提高应用连接数据库的效率,减少资源的消耗。在实际的项目中,我们应该根据应用的具体情况来合理地配置连接池,从而使其达到最佳的性能。