数据库连接池
1、什么是数据库连接池
数据库连接池是程序在启动时创建足够多的数据库连接,将这些连接放入一个池子里。由程序动态地进行申请,使用和关闭。
2、连接池的作用
频繁的创建和关闭连接是非常消耗资源的。
作用:负责分配,管理和释放数据库连接。允许程序重复使用现有的同一个数据库连接,而不是重现创建一个,避免了资源的消耗。
3、node中使用数据库连接池
3.1 安装引入mysql模块
cnpm i mysql -S //下载安装
并且在node js文件中引入mysql模块。
const mysql = require("mysql")
4、代码
常用的方法:
conn.release() 当连接不需要的时候,将其归还给连接池。
conn.destory() 当连接不需要的时候,从连接池中移出该连接。下一次就申请不到这个连接了。
pool.end() 当连接池不需要使用的时候,关闭连接池。
app.js如下:
const mysql = require("mysql");
const pool = mysql.createPool({
host:"localhost",
port:3306,
user:"root",
password:"123456",
database:"book",
connectionLimit:20, //用于指定数据库连接池中最大的连接数 默认是10个
queueLimit:2 //用于指定挂起的最大连接数。如果挂起的连接数量超过这个设定值,就会超出错误。默认是0。
})
pool.getConnection(function(err,conn){ //err 是getConnection操作失败时的错误信息。conn 是一个对象。表示从连接池中获取的连接对象。
if (err) {
console.log("mysql数据库连接失败!失败原因:"+err);
return;
}
console.log("数据库连接成功!");
let sql = "select * from book"; //书写一个sql语句
conn.query(sql,(err,result)=>{
conn.release(); //将连接归还连接池。
if (err) {
console.log("查询失败,失败原因:"+err);
return;
}
console.log(result);
})
})