繁体   English   中英

小型应用程序中的连接池

[英]Connection Pooling in a small application

我有一些关于连接池和最佳实践的简单问题。 我正在计划和编写一个依赖MySQL数据库的小型应用程序。 在此应用程序中,我使用可以创建连接的模块和插件。 该应用程序可以直接访问MySQL数据库,它可能是连接数据库的唯一客户端。

这是我的第一个问题:连接池是否有意义? 它无关紧要还是应该禁用它? 你有什么经验?

另一方面,在我公司中,我们开发了另一种软件,该软件具有一个MySQL数据库服务器和许多客户端。 每个客户端都可以打开多个可以激活多个连接的窗口。 该软件很有可能会使用我的新应用程序的基本概念。 客户端直接与数据库连接。 因此,我想编写一个处理池化并组织连接的服务器应用程序很有意义,对吗? 让每个客户端使用它自己的连接池有多大意义? 我们正在谈论1-50个具有1-10个连接的客户端。

您认为编写小型服务器应用程序来处理连接池是最好的吗?

我问是因为我真的不知道什么时候连接池有意义,什么时候没有意义以及如何使用中小型客户端应用程序来处理它。 我正在寻找您的经验的输入。 :)我希望问题不要尴尬。 ^^

问候,
西蒙

PS:这是一个基于Windows的应用程序。 不是网络服务。

连接池将为您提供额外的性能,实际上,没有它,即使对于小型应用程序,性能也会成为一个问题(取决于调用,数据等的数量)。

考虑适当处理您的连接,以避免“达到最大池大小”错误和超时。 一个好的做法是按以下方式处理您的连接:

using (SqlConnection conn = new SqlConnection(myConnectionString))
  {
        conn.Open();
        doSomething(conn);
  }

使用保证,连接将被正确关闭/处置。 查看本文, 文章提供了一些可用于MSSQL或MySQL的技巧。

还考虑使用存储过程。 希望这对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM