Sql server 在每台web服务器上安装一台SQL server是否明智?

Sql server 在每台web服务器上安装一台SQL server是否明智?,sql-server,performance,web-applications,hardware-infrastructure,Sql Server,Performance,Web Applications,Hardware Infrastructure,我想知道在这种情况下 你读的比写的多得多 您选择的SQL server价格便宜/免费,并提供快速镜像/复制服务 你的数据库不是很大 与其有单独的SQL服务器,不如在每台机器上都有一个SQL实例,从主服务器获得即时更新。这样,在执行所有读取查询时将不会有网络延迟,但由于必须执行SQL实例,因此会对每盒性能造成影响。这对整体性能是否更好?还有其他的优点/缺点吗?您的SQL Server应该始终位于与Web服务器不同的框中,这是毫无疑问的 您拥有多少DB服务器和Web服务器,以及它们如何镜像(或以其他

我想知道在这种情况下

  • 你读的比写的多得多
  • 您选择的SQL server价格便宜/免费,并提供快速镜像/复制服务
  • 你的数据库不是很大

  • 与其有单独的SQL服务器,不如在每台机器上都有一个SQL实例,从主服务器获得即时更新。这样,在执行所有读取查询时将不会有网络延迟,但由于必须执行SQL实例,因此会对每盒性能造成影响。这对整体性能是否更好?还有其他的优点/缺点吗?

    您的SQL Server应该始终位于与Web服务器不同的框中,这是毫无疑问的

    您拥有多少DB服务器和Web服务器,以及它们如何镜像(或以其他方式镜像)取决于您如何扩展应用程序


    您的SQL Server位于不同的计算机上,因为它需要(并且应该)大量RAM。

    一个直接的缺点是SQL Server中没有分布式锁协调器,因此您可以获得合并冲突,因为更新可以同时更改两台不同服务器上的同一行

    根据数据库和web服务器中磁盘的大小,您会发现网络延迟小于您将开始遭受的磁盘延迟,因为web服务器磁盘的性能通常不如您提供给数据库的磁盘阵列。如果您想要这种性能,您可以购买每台web服务器


    复制性能也不是没有延迟的,事务的分发不是“免费的”,必须计划对事务日志进行仔细的维护,以确保不会出现日志碎片(事务日志中的vlog太多)这会降低复制性能。

    拥有数据库的只读副本是一种常见的体系结构模式。我们接受它们的某种程度的陈旧性,也许它们甚至每天只更新一次

    一般规则是,多份拷贝将带来运营和管理方面的复杂性,并往往会带来数据不一致的可能性——几乎不可避免地,拷贝不会完美地完成(或者制作它们的成本太高)

    例如:如果您的复制处理稍微中断,会发生什么情况。这样,一些但不是所有的副本都会过时。现在,您的用户开始看到完全不同的世界观。这对你有多重要?如果它是一个数据价值很低的网站(比如在伦敦地铁站看到名人),那么这也许没关系。如果是现有库存,过时意味着你的客户无法下订单,那么你可能会更在意


    我的建议是:当你凌晨3点坐在手术室的时候,那些听起来简单的事情并不总是这样。请确保您可以轻松操作您的解决方案。

    您的SQL Server如何便宜/免费?我应该说,这种设置的许可成本将是巨大的。按每台服务器的零售价计算。另请参见有关成本的信息。尽一切办法扩展web服务器,但在SQL服务器几乎屈服之前,不要扩展它

    相反,您可能需要考虑像或这样的分布式缓存


    不管是哪种方式,首先使用一台SQL server运行您的站点,看看它如何应对负载,然后考虑跨服务器镜像/复制,否则您只是过早地进行了优化。先量

    这听起来似乎是一个开发人员合理的设计考虑。假设我有一台装载了大量RAM的机器,这样我就可以满足我的SQL server的需求了?哦,还有大量的内核,大量的CPU。我还需要两台机器吗?[我认为您的更新是好的,但我认为这个论点需要进一步证实。]因此,基本上,尽可能多的数据库需要装入RAM,否则您将获得磁盘读取,如果按每个Web服务器安装,则在RAM中装入数据库将是昂贵的?那么,“只有RAM是免费的”是答案吗?答案更难,因为你说的是一个特定的扩展情况;在说写下多个数据库将显著提高性能之前,我们确实需要对您的应用程序有更多的了解。我的意思是,一般来说会的,但可能是杀伤力太大了。乔娜:嗯,一般来说是‘不’,但实际上我更喜欢有一台单独的机器;因为补丁和备份是不同的,它可能被替换掉,等等。隔离有利于稳定性。@silky-yep完全同意。我看到了一个比你原来的论点好得多的论点:-)我应该把问题说得更清楚一点-一个数据库是主数据库,更新被写入其中,只是读取在从实例上完成。我认为OP的意思是如果他们使用开源数据库服务器,或者拥有允许在任何地方安装的卷许可证。