【数据库】1.mysql相关知识_在node中的运用(八)

   什么是连接池?
        - 我们的服务器有
            - 应用服务器(apache、tomcat、node等)
            - 数据库服务器(mysql)
        - 应用服务器会与数据库服务器建立连接并获取数据

    应用服务器与数据库服务器数据交互的模式:
        - 模式一:(不建议使用)
            - 建立连接,获取到数据后,断开连接
                - 每次获取数据都建立断开,很消耗性能(不建议使用)


            应用服务器                         数据库服务器
            -------------                    -------------
            |           |      建立请求连接    |            |
            |           |------------------->|            |
            |           |<-------------------|            |
            |           |    获取到数据后断开   |            |
            |           |                    |            |
            -------------                    -------------- 
        
        - 模式二:连接池模式(建议使用)
            - 有一个连接池,用于保持应用服务器和数据库服务器之间的链接。
            - 举例:
                - 一开始,应用服务器与数据库服务器之间有一个连接池,保持了3个连接,当应用服务器请求数据库服务器的时候,会占用连接池的一个资源,进行数据通信,用完之后再还回到连接池
                - 假设,有100个请求同时发送到应用服务器,应用服务器需要去请求数据库服务器,那连接池里是不是需要100个通道?
                    - 不是的,这样数据库服务器会吃不消,我们在创建服务器的时候,可以用connectionLimit字段限制连接池中的资源个数。假设connectionLimit的值是10,那么每次处理请求是10个,剩余的需要排队处理。

            应用服务器        连接池                      数据库服务器
            -------------   ------                     -------------
            |           |   |     |     始终保持链接     |            |
            |           |   |  o  |------------------->|            |
            |           |   |  o  |------------------->|            |
            |           |   |  o  |------------------->|            |
            |           |   |     |                    |            |
            -------------   ------                     -------------- 

let mysql = require("mysql");

//创建连接,有并发连接数限制,返回一个连接池
const pool = mysql.createConnection({
    connectionLimit:10,//并发连接数
    host:'localhost',
    user:'root',
    password:'123456',
    database:'cms'
})

//数据库操作,当然,也可以使用库Q或者库bluebird进行promisify后操作
pool.query('SELECT 1+1 AS sulution',(err,result,fields) => {
    console.log(err,result,fields);
})


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值