Heim >Datenbank >MySQL-Tutorial >Was ist die Methode zur Verbindung des Knoten- und MySQL-Datenbankverbindungspools?

Was ist die Methode zur Verbindung des Knoten- und MySQL-Datenbankverbindungspools?

WBOY
WBOYnach vorne
2023-05-30 21:35:241861Durchsuche

MySQL verfügt über zwei Verbindungsmethoden: eine ist die direkte Verbindung und die andere ist die gepoolte Verbindung. In diesem Artikel geht es um die gepoolte Verbindung.

Um die Verwirrung zu beseitigen, schreibe ich kurz den Code für die direkte Verbindung wie folgt:

var mysql = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'ac',
  password : '123456',
  database : 'textPro'
});
 
connection.connect();
 
connection.query('SELECT * from1 userInfo', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results);
});
 
connection.end();

Der Unterschied zwischen createConnection und createPool ist: Die Verbindung mit createPool (Verbindungspool) kann Serverdaten sinnvoller nutzen und Datenverschwendung reduzieren #Es wurde ein Verbindungspool erstellt. Danach können Sie direkt die getConnection-Methode

des Verbindungspoolobjekts verwenden, um eine Verbindung aus dem Verbindungspool abzurufen, einer Datenbank Die Verbindung wird implizit hergestellt.

const mysql = require("mysql")
 
//创建连接池
const db= mysql.createPool({  
    host : 'localhost', //连接主机
    port : 3306,   //端口号
    database : 'test',  //连接的是哪一个库
    user : 'root',   //用户名
    password : '',    //密码
    connectionLimit : 50, //用于指定连接池中最大的链接数,默认属性值为10. 
    //用于指定允许挂起的最大连接数,如果挂起的连接数超过该数值,就会立即抛出一个错误,
    //默认属性值为0.代表不允许被挂起的最大连接数。
    queueLimit:3 
})

Aufrufendes DB-Modul einführen

const mysql = require("mysql")
 
//创建连接池
const db= mysql.createPool({  
    host : 'localhost', //连接主机
    port : 3306,   //端口号
    database : 'test',  //连接的是哪一个库
    user : 'root',   //用户名
    password : '',    //密码
    connectionLimit : 50, //用于指定连接池中最大的链接数,默认属性值为10. 
    //用于指定允许挂起的最大连接数,如果挂起的连接数超过该数值,就会立即抛出一个错误,
    //默认属性值为0.代表不允许被挂起的最大连接数。
    queueLimit:3 
})  
 
module.exports.query = (sql, values.callback) => {
  //err: 该参数是指操作失败时的错误对象。
  //connection: 该值为一个对象,代表获取到的连接对象。当连接失败时,该值为undefined。
  db.getConnection(function(err, connection) {
    if (err) {
      console.log('与mysql数据库建立连接失败');
      pool.releaseConnection(); //释放链接
    } else {
      console.log('与mysql数据库建立连接成功');
      connection.query(sql,values,(err, res) => {
        if (err) {
          console.log('执行sql语句失败,查询数据失败');
          //connection.release() 当一个连接不需要使用时,使用该方法将其归还到连接池中 release释放
          connection.release();
          callback(err,null)
        } else {
           console.log('执行sql语句成功');
           callback(null,res)
          //pool.end() 当一个连接池不需要使用时,可以使用该方法关闭连接池
          pool.end();
        }
      })
    }
  })
}
const query=require('./db').query und const query=require('./db' )Unterschied

Die erste Schreibweise erhält nur die Abfragefunktion im Modul „./db“, wenn Sie andere Exportelemente verwenden müssen. Du musst es noch einmal machen.

  • Die zweite Schreibmethode ruft alle vom Modul „./db“ exportierten Elemente ab, und es besteht keine Notwendigkeit, wiederholt verschiedene exportierte Elemente im Code abzurufen.

Das obige ist der detaillierte Inhalt vonWas ist die Methode zur Verbindung des Knoten- und MySQL-Datenbankverbindungspools?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen