首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现连接池?

如何实现连接池?
EN

Stack Overflow用户
提问于 2015-06-15 01:30:00
回答 1查看 84关注 0票数 0

我使用civetweb作为(websocket)服务器。我有一些处理程序,当我接收数据时,它将查询mysql。每当有一个请求时,这些都会作为一个线程产生。

到目前为止,我只使用了一个mysql与数据库的连接,这是我在程序开始时设置的,与mongoose库结合使用。但是对于线程请求,这让我很头疼,因为从执行mysql_select()到mysql_store_result(),mysql都不是线程安全的。我曾尝试在这些mysql函数周围放置一个互斥锁,但是性能下降了十倍(从大约750个请求/秒下降到大约75个请求/秒)。

处理这个问题的正确方法是什么?我听说过“连接池”,但在google中很难找到一些简单的例子(或者让我满脑子想着一个合理的实现)。

我似乎不太可能是第一个遇到这种问题的人:)。

EN

回答 1

Stack Overflow用户

发布于 2015-06-15 05:31:32

我不确定这对你有没有帮助。我想把它放在评论中,但我还没有足够的声誉。

当我在应用程序中添加多线程时,我在VB.NET中也遇到了同样的问题。为了纠正它,我确保在所有查询之前调用connection.open,并将"pooling=true;“添加到我的mysql连接字符串的末尾。Mysql将决定是否需要打开一个连接或使用现有的连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30832430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档