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

2018-05-30 19:51:38 +08:00
 locktionc

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

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

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

1885 次点击
所在节点    问与答
6 条回复
a7a2
2018-05-30 20:27:49 +08:00
连接池啊 一般数据库连接库都带有。

例如;
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
2018-05-30 22:19:54 +08:00
@a7a2 嗯。这是一种方式。在一定时间内复用,超过一定时间就算开。同时最多 PoolSize 个连接。
a7a2
2018-05-30 22:48:52 +08:00
其实数据库配置文件可以设置超时、空闲多久等选项 自己搜索
panyanyany
2018-05-30 22:54:40 +08:00
这种数据量需要考虑最佳方案么……等你到了并发连接 300~500 的时候再考虑不迟啊
yangqi
2018-05-30 22:59:47 +08:00
网站不要用长连接,除非特殊情况,而且你知道你在干什么,都有哪些坑。就正常的连接查询断开就行,别想太多了。
iyaozhen
2018-05-30 23:44:15 +08:00
连接池更好,不然把 db 打崩了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/459032

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX