我想知道如果应用程序有大量数据库查询该怎么办。
我正在使用Microsoft SQL Server 2012和当前(开发时间)我在与ASP.NET应用程序相同的计算机上运行SQL Server。一切都好。连接是通过环回接口(localhost)进行的,因此根本没有速度影响。没有物理网络。
如果由于SQL Server处于生产模式而导致RAM使用率非常高,会发生什么?将应用程序机器与数据库机器分开会更好吗?
但如果是这样,连接必须通过真实的网络接口而不是伪回送接口完成。在这种情况下是否存在速度影响?由于引入了物理网络,是否会导致延迟?
通常我会从托管服务提供商处租用2台根服务器。一个用于应用程序,一个用于具有巨大ram的数据库。他们如何相互沟通?两者都有本地IP地址以实现快速互连吗?这两台机器来自同一家提供商。
提前致谢
答案 0 :(得分:2)
如果您有两台服务器:数据库和应用服务器,则应进行设置,以便数据库服务器具有2个网络连接(对应用服务器也是如此)。其中一个连接是专用网络,另一个是公共连接。应用服务器应通过专用网络与数据库通信。这是一个典型的实现,它会很快。在应用程序的配置文件中,您将设置连接字符串以指向数据库服务器的专用IP。应锁定数据库计算机上的公共网络连接,以便只打开远程桌面,ping和ssh端口。在应用服务器上,公共网络应该打开相同的端口,另外端口80,以便它可以提供http请求。
答案 1 :(得分:1)
hotSauce.Open已经回答了你的大部分问题,但无论如何:
如果由于sql-server导致ram-usage非常高,会发生什么 在生产模式?
每次需要查询时,网站的性能都会下降。 例如,您可以尝试使用Memcached或Redis来减轻负载。应用程序本身也可能需要进行一些调整以最大化系统资源(例如:最小化请求数量,确保您为所需的特定数据全部交换“select *”。
将应用程序机器与应用程序机器分开会更好吗? 数据库机?
如上所述,在分离两者之前,您可以做几件事。在任何情况下,如果你真的期望高流量负载,那么在不同的服务器上运行应用程序肯定会有用(虽然更昂贵......)。如果它值得或不值得,那完全取决于你的要求。