我有一些关于连接池和最佳实践的简单问题。 我正在计划和编写一个依赖MySQL数据库的小应用程序。在这个应用程序中,我使用可以创建连接的模块和插件。该应用程序可以直接访问MySQL数据库,它可能是唯一连接到数据库的客户端。
以下是我的第一个问题:连接池是否有意义?它是不相关的还是应该禁用它?你有什么经历?
另一方面,在我的公司,我们开发了另一个软件,它有一个MySQL数据库服务器和许多客户端。每个客户端都可以打开多个窗口,其中可以激活多个连接。该软件很有可能将使用我的新应用程序的基本概念。客户端直接与数据库连接。所以我想编写一个处理池并组织连接的服务器应用程序会很有意义,对吗?让每个客户使用它自己的连接池有多大意义?我们谈论1-50个客户,1-10个连接。
您认为编写小型服务器应用程序以处理连接池是否最佳?
我问,因为我真的不知道什么时候连接池有意义,什么时候没有,以及如何使用中小型客户端应用程序处理它。我正在寻找你的经验的一些输入。 :)我希望问题不是尴尬。 ^^
问候,
西蒙
P.S。:这是一个基于Windows的应用程序。不是网络服务。
答案 0 :(得分:0)
连接池将为您提供额外的性能,实际上没有它性能可能是一个问题,即使对于小型应用程序(它取决于调用,数据等)。
考虑正确处理您的连接,以避免“达到最大池大小”错误和超时。一个好的做法是像这样处理你的连接:
using (SqlConnection conn = new SqlConnection(myConnectionString))
{
conn.Open();
doSomething(conn);
}
使用 保证,而不是正确关闭/处置连接。查看this文章,其中提供了可以应用于MSSQL或MySQL的一些提示。
还要考虑使用存储过程。希望这有助于您入门。