我试图弄清楚从具有不同数量的数据库用户的.Net 类中访问数据库的优缺点。
是否有反对仅使用 1 个 mysql 用户的论据,例如
new MySqlConnection("SERVER=localhost;DATABASE=db;UID=alwaysthesameuser;PASSWORD=1234;")
还是使用更多用户会更好?
该应用程序将由多达 100 个用户(正在处理客户端)同时使用。所有查询都在服务器机器上完成。
有什么我需要考虑的,以后可能会产生问题吗?
我试图弄清楚从具有不同数量的数据库用户的.Net 类中访问数据库的优缺点。
是否有反对仅使用 1 个 mysql 用户的论据,例如
new MySqlConnection("SERVER=localhost;DATABASE=db;UID=alwaysthesameuser;PASSWORD=1234;")
还是使用更多用户会更好?
该应用程序将由多达 100 个用户(正在处理客户端)同时使用。所有查询都在服务器机器上完成。
有什么我需要考虑的,以后可能会产生问题吗?
使用单个“应用程序用户”数据库帐户,而不是大量用户帐户,您将获得更好的性能。
最大的优势是您可以使用连接池,并且可以共享连接。如果有很多单独的帐户,您将需要很多连接池,每个用户帐户一个。您要避免的是“连接搅动”,即反复连接和断开与数据库的连接,这限制了性能和可伸缩性。
还有一个管理优势(至少在数据库方面),因为您不必创建/锁定/删除帐户和授予/撤销权限。不确定 , 等表中有很多行会有多大影响mysql.user
,mysql.db
但我认为那里的很多行不太可能加速任何事情。
作为一个经验法则来扩展数据库连接设置一个连接池。使用同一用户。我们称之为应用程序用户。在面向性能的数据库应用程序中,连接池是必须的。
这当然假设您使用的是分层模型。从您的帖子来看,您似乎有一个分层模型。如果不确定谷歌如何在 .net 中设置连接池,我的理解是微不足道的。