对我的数据库服务器设置感到好奇

对我的数据库服务器设置感到好奇

我白天是一名 Web 开发人员,但我没有太多的服务器管理经验。我正在从事一些托管在 512mb linode 服务器上的业余项目。

我正在开发的主要应用程序是一个 rails 应用程序,它实际上并不执行任何耗费资源的操作。

根据我拥有的服务器大小,最好在同一台服务器上运行我的主数据库吗?

将主数据库放在另一个 512mb linode 上会不会有什么坏处?如果第二个盒子位于同一个数据中心,并且有私有 IP(192.168.xx),是否会出现延迟问题,也许会出现更大的读/写操作?

另外,我正在考虑尝试 MongoDB。我知道 Mongo 需要大量内存,因为它使用了内存映射文件策略,但是我有没有办法在我的 512mb linode 上与我的应用程序一起运行 MongoDB,甚至在它自己的 512mb linode 上运行 MongoDB?

最后一个问题,将主服务器和第一个从服务器/副本集放在同一个盒子里更好吗,还是应该将第一个从服务器/副本集拆分到它自己的盒子里?

答案1

我个人非常喜欢 MongoDB,但他的回答都不是针对 Mongo 的。

除非您的数据量非常小,并且您不希望数据量增长太多,否则 512MB 的 RAM 很可能不足以满足您的数据库服务器的需求。

将数据库放在单独的服务器上是一种常见且得到良好支持的方案。虽然通过网络在应用程序和数据库之间进行通信的延迟比在同一系统上更高,但我还是希望将它们分开。即使没有其他原因(还有其他原因),也是为了防止一个系统/守护程序/应用程序的故障烧毁整个房子。


就 MongoDB 而言,我真的很喜欢它的可提升性。它的概念简单,管理简单,并且允许(甚至鼓励)数据模型具有 RDBMS 所不能的灵活性。

答案2

让我重新表述一下您的一些问题。

我需要在单独的机器上运行数据库服务器吗?

如果您的应用程序频繁读写,那么在一个节点上运行数据库甚至所有其他依赖组件会比在多个节点上运行快得多。但在大多数情况下,由于表连接查询和事务,Sql Server 消耗的 CPU 资源比网络 IO 多。CPU 和内存更有可能成为您网站的瓶颈。因此,在 Web 开发中,将 Web 应用程序和数据库放在不同的机器上是切实可行的。

我应该使用 Sql 数据库还是 NoSql 数据库?

要从头开始构建 Web 应用程序,我建议您从 MySql 或任何其他 Sql 服务器开始。它得到了很好的支持。您可以从任何地方获得帮助。如果您计划运行单节点数据库,Sql 服务器不会比任何 NoSql 数据库慢。当您的在线业务发展到非常大的规模时,您可能需要重新设计数据库以使其适合 NoSql 数据库。

http://en.wikipedia.org/wiki/NoSQL

相关内容