美文网首页
node-mysql 连接池

node-mysql 连接池

作者: 俊滔_b059 | 来源:发表于2018-04-02 16:46 被阅读63次

前言

具体代码发布在github了,不同分支代表在不同阶段的版本
我的github

createConnection vs createPool

  • createConnection方法创建连接对象
    正式的说法是 使用createConnection方法创建一个表示与mysql数据库服务器之间连接的connection对象

  • createPool连接池
    在开发web应用程序时,连接池是一个很重要的概念。建立一个数据库连接所消耗的性能成本是很高的。在服务器应用程序中,如果为每一个接收到的客户端请求都建立一个或多个数据库连接,将严重降低应用程序性能。

    因此在服务器应用程序中通常需要为多个数据库连接创建并维护一个连接池,当连接不再需要时,这些连接可以缓存在连接池中,当接收到下一个客户端请求时,从连接池中取出连接并重新利用,而不需要再重新建立连接。

这里贴出promise封装的连接池代码 了解更多?

/**
 * promise版 sql连接池
 * jtchen 2018/3/27
 */

const mysql = require('mysql');

const pool = mysql.createPool({
    host: '127.0.0.1',
    user: 'root',
    password: '1qaz@WSX',
    port: 3306,
    database: 'app_blog'
})

exports.query = (sql, params = []) => {
    return new Promise((resolve, reject) => {
        pool.getConnection((err, connection) => {
            if (err) {
                return reject(err);
            }
            connection.query(sql, params, (err, result) => {
                //释放连接
                connection.release();
                if (err) {
                    return reject(err);
                }
                resolve(result);
            });
        });
    });
};



这里简单介绍几个关键的方法

//createPool
var pool = mysql.createPool(optioins);
options参数包含createConnection方法中可以使用的各种属性

//getConnection
//err为错误对象,connection为获取到的连接对象。
从连接池中取出连接。
pool.getConnection(function(err,connection))

//release
release方法将其归还到连接池中 connection.release();

//destroy
当一个连接不再需要使用且需要从连接池中移除时用connection对象的destroy方法。
connection.destroy(); 
连接移除后,连接池中的连接数减一

//end
当一个连接池不再需要使用时,用连接池对象的end方法关闭连接池。pool.end();

相关文章

  • node-mysql 连接池

    前言 具体代码发布在github了,不同分支代表在不同阶段的版本我的github createConnection...

  • Nodejs学习笔记-Mysql连接池

    安装mysqlpool模块 npm install -g node-mysql 代码 https://github...

  • node-mysql

    1、bulk insert: 碰到自增的主键,需要列出插入的column,为了去除主键普通insert,碰到自增的...

  • Node-MySQL

    一、配置 这里使用phpStudy启动MySql服务,Navicat for MySQL具体操作数据库。 说明: ...

  • 撩课-JavaWeb之什么是连接池与连接池使用

    什么是连接池 没有连接池的情况 数据库连接池 池 连接池 作用 数据库连接池 示意图 连接池中的属性 连接池使用 ...

  • Node代码片段

    Node与Mysql交互 采用node-mysql开源项目作为Node框架的MySQL扩展库包括以下方面: 1. ...

  • 代码分析

    interface 相关配置 默认子连接池 定义全局连接池 注册连接池 默认子连接池 连接

  • JDBC 进阶——连接池

    本文包括传统JDBC的缺点连接池原理自定义连接池开源数据库连接池DBCP连接池C3P0连接池Tomcat内置连接池...

  • SSM框架mybatis深入了解(二)

    一、mybatis中的连接池及事务控制 1.mybatis中的连接池使用及分析 1.1 连接池简介连接池是创建和...

  • JDBC进阶学习笔记

    JDBC进阶 JDBC连接池 1. 常见的JDBC连接池 c3p0 开源连接池 druid 阿里的开源数据库连接池...

网友评论

      本文标题:node-mysql 连接池

      本文链接:https://www.haomeiwen.com/subject/cydjcftx.html