首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在使用Qt框架的多线程应用程序中减少DB连接的最佳策略

在使用Qt框架的多线程应用程序中减少DB连接的最佳策略
EN

Stack Overflow用户
提问于 2012-03-05 17:36:01
回答 2查看 1.7K关注 0票数 2

我有一台可以与许多设备(>1000)通信的服务器。每个连接都有自己的线程。现在,我意识到我必须将我的mysql配置设置为允许超过1000个打开的并发连接,这在我看来是一个非常糟糕的想法。

Qt文档说每个线程都需要自己的连接:http://qt-project.org/doc/qt-4.8/threads-modules.html#threads-and-the-sql-module

所以,我得打电话给

代码语言:javascript
运行
复制
 QSqlDatabase::addDatabase("QMYSQL", "thread specific string");

在每个线程中。

这里的最佳实践是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-05 17:58:39

  1. 老实说,我对QT了解不多,但如果我把你的问题放在一般情况下,我会建议你创建一个“连接池”
  2. 如果你不想或不能实现连接池,那么在MySQL配置中增加Max_Connections并将池保留在MySQL上是很好的,它有自己的连接池机制。
票数 0
EN

Stack Overflow用户

发布于 2012-03-05 17:52:45

我认为某种类型的资源池在这里是合适的。

根据超过1000个设备线程的数据库工作负载,单个数据库线程可能会管理它,或者您将需要多个数据库线程。

然后设置从设备线程到数据库线程的排队系统,其中设备推送工作,数据库线程拉出工作单元并执行查询。

我刚刚意识到,我正在考虑只像某种日志记录那样写入数据库,如果您正在做的是从数据库读取和写入设备,那么如果不进行修改,这个想法可能不会起作用。

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

https://stackoverflow.com/questions/9564393

复制
相关文章

相似问题

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