V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
locktionc
V2EX  ›  问与答

在做网站的时候,你是如何保持 Web Server 与数据库的连接的?

  •  
  •   locktionc · May 30, 2018 · 2516 views
    This topic created in 2891 days ago, the information mentioned may be changed or developed.

    你会在 Web Server 里面保持一个对数据库的长连接,前端发来一个请求你就直接查询数据库,还是每次前端请求来了以后再和数据库建立连接,查询完成以后就关闭?

    如果保持一个长连接,有没有什么风险?

    并发量几十,数据库返回的数据只有几 KB,这种情况下最佳处理方案是什么?

    6 replies    2018-05-30 23:44:15 +08:00
    a7a2
        1
    a7a2  
       May 30, 2018
    连接池啊 一般数据库连接库都带有。

    例如;
    DialTimeout: 3 * time.Second,
    ReadTimeout: 3 * time.Second,
    WriteTimeout: 3 * time.Second,
    PoolSize: 99,
    PoolTimeout: time.Second * 3,
    IdleTimeout: time.Second * 10,
    IdleCheckFrequency: time.Second * 10,
    locktionc
        2
    locktionc  
    OP
       May 30, 2018
    @a7a2 嗯。这是一种方式。在一定时间内复用,超过一定时间就算开。同时最多 PoolSize 个连接。
    a7a2
        3
    a7a2  
       May 30, 2018
    其实数据库配置文件可以设置超时、空闲多久等选项 自己搜索
    panyanyany
        4
    panyanyany  
       May 30, 2018
    这种数据量需要考虑最佳方案么……等你到了并发连接 300~500 的时候再考虑不迟啊
    yangqi
        5
    yangqi  
       May 30, 2018
    网站不要用长连接,除非特殊情况,而且你知道你在干什么,都有哪些坑。就正常的连接查询断开就行,别想太多了。
    iyaozhen
        6
    iyaozhen  
       May 30, 2018 via Android
    连接池更好,不然把 db 打崩了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1024 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 18:55 · PVG 02:55 · LAX 11:55 · JFK 14:55
    ♥ Do have faith in what you're doing.