mysql.createPool创建连接池和createConnection

858 阅读1分钟
1.createConnection

创建一个model.js文件 model.js

//mysql 是一个第三方的数据库模块,使用前需要安装 npm i mysql
 const mysql = require('mysql')
 
 // 连接 mysql 服务器
 const connection = mysql.createConnection({
   host: '127.0.0.1',
   port: '3306',
   user: 'root',
   password: ''
})
//执行SQl
connection.query(sql, function (err, result) {
   err // 错误信息
   result // 结果
})
// 销毁连接,由于 JS 是异步的,所以当前代码会在执行 SQL 之前就销毁了连接
connection.destroy()

用 createConnection 创建 Mysql 连接,每执行一次 connection.query 都是一个全新的连接,会造成一个资源的极大浪费,降低性能。

2.mysql.createPool 连接池+封装query

连接池是另外的一种执行方法,它一次性的创建了多个连接,然后根据客户端的查询,自动的 分发、复用、管理 这些连接。

model.js

const mysql = require('mysql')

// 连接池:创建多个连接、复用与分发连接
const pool = mysql.createPool({
  host: '127.0.0.1',
  port: '3306',
  user: 'root',
  password: ''
})

// 随机分配一个连接
pool.query(sql, function (err, result) {undefined
}

// 封装
static query = function(sql,callback){
   pool.getConnection(function(err,connection){
     connection.query(sql,function(err,results){
         callback(err, results) // 结果回调
        // 释放连接资源 ,跟 connection.destroy() 不同,它是销毁
         connection.release() 
         }
        })
       })
      }

先对连接池总结这些,以后还会慢慢补充!

天小羽学习篇 (2).gif