我想知道如果应用程序有大量的数据库查询该怎么办。
我使用的是Microsoft SQL Server2012,目前(开发时)我在与ASP.NET应用程序相同的机器上运行SQL Server。百事大吉。连接是通过环回接口(localhost)建立的,因此根本不会影响速度。没有物理网络。
如果由于SQL Server处于生产模式而导致RAM使用率非常高,会发生什么情况?将应用程序机器与数据库机器分开是不是更好?
但如果是这样的话,连接必须通过真实的网络接口来完成,而不是通过伪环回接口。在这种情况下是否存在速度影响?是否会因为引入物理网络而导致延迟?
通常,我会从主机提供商那里租用2个根服务器。一个用于应用程序,一个用于具有巨大ram的数据库。它们是如何相互通信的?两者是否都有本地IP地址以实现快速互连?两台机器都来自同一个提供商。
提前感谢
发布于 2014-04-08 23:14:22
如果您有两个服务器:一个数据库和一个应用程序服务器,那么您应该设置它们,使数据库服务器具有两个网络连接(应用程序服务器也是如此)。其中一个连接用于私有网络,另一个用于公共网络。应用服务器应该通过专用网络与db对话。这是一个典型的实现,它会很快。在应用程序的配置文件中,您可以将连接字符串设置为指向数据库服务器的专用IP。您的数据库机器上的公共网络连接应该被锁定,以便只打开远程桌面、ping和ssh端口。在应用程序服务器上,公共网络应该开放相同的端口,并额外开放端口80,以便它可以为http请求提供服务。
发布于 2014-04-08 23:25:56
hotSauce.Open's已经回答了你的大部分问题,但无论如何:
如果由于生产模式下的sql-server导致内存使用率非常高,会发生什么情况?
每次需要查询时,网站的性能都会下降。例如,您可以尝试使用Memcached或Redis来减轻负载。
将应用程序机器与数据库机器分开是不是更好?
如前所述,在将两者分开之前,您可以做几件事。在任何情况下,如果您真的期望高流量负载,那么在不同的服务器上运行应用程序肯定会被证明是有用的(尽管成本更高...)。是否值得,这完全取决于您的要求。
https://stackoverflow.com/questions/22940900
复制相似问题