基于useramount的MySQL数据库性能

时间:2012-07-17 14:39:37

标签: .net mysql performance

我试图弄清楚从具有不同数量的数据库用户的.Net类访问数据库的利弊。
是否存在反对仅使用1个mysql用户的论据,如

new MySqlConnection("SERVER=localhost;DATABASE=db;UID=alwaysthesameuser;PASSWORD=1234;")

或者使用更多用户会更好吗?

最多100个用户(正在客户端工作)将同时使用该应用程序。所有查询都在服务器计算机上完成。

我有什么需要考虑哪些可能会在以后产生问题?

2 个答案:

答案 0 :(得分:1)

根据经验,缩放数据库连接设置连接池。使用相同的用户。我们称之为应用程序用户。连接池是面向性能的数据库应用程序中必不可少的。

这当然假设您使用的是n层模型。从你的帖子来看,似乎你有一个n层模型。如果不确定谷歌如何在.net中设置连接池,那么从我的理解来看这是微不足道的。

答案 1 :(得分:1)

使用单个“应用程序用户”数据库帐户,而不是大量用户帐户,您将获得更好的性能。

最大的好处是您可以使用连接池,可以共享连接。有许多单独的帐户,您需要大量的连接池,每个用户帐户一个。您要避免的是“连接搅动”,即重复连接和断开数据库,这会限制性能和可伸缩性。

还有一个管理优势(至少在数据库方面),因为您不必创建/锁定/删除帐户并授予/撤销权限。不确定mysql.usermysql.db等表中有多少行会产生多大影响,但我认为不太可能会有很多行加速。