我只是好奇,有一些像 MongoLab 这样的服务将数据托管在远程服务器上。任何使用过数据库的人都知道,即使所有服务器都是内部的,也会存在一定的网络延迟。对于生产环境来说,像 MongoLab 这样的远程数据存储服务是个好主意吗?
这个问题主要针对基于 AJAX 的 Web 应用程序或一般网站。
最佳答案
我发现 MongoLab 非常好。显然,您需要考虑一般的往返,优化这些将最大限度地减少整体延迟。
将自己放入与 MongoLab 相同的数据中心也是有意义的(您可以选择位置)。他们现在还在 Azure 上提供了(测试版)服务。
我一直在运行高延迟的服务(浏览器、网络服务器和 Mongo 的三个不同地理区域,但在我的情况下它仍然表现良好,因为我的交互并不“喋喋不休”。
正如您可能知道的,Mongo 的设计限制之一是缺乏连接,因此我的数据结构自然适合简单的数据问答。我不会阅读一个集合,然后使用该信息去查找另一个集合(手动连接)。因此,我不会因为这些复杂的交互而增加延迟成本。最坏的情况通常是单个请求/响应(或一系列并行的单个请求/响应查询),因此总共大约 200 毫秒的差异是可以接受的。
但是,当然,您的网络服务器距离数据库越近越好。
据推测,如果您花足够的钱,MongoLab 等人可以为您提供自定义配置,可能您可以在其中拥有本地辅助配置。
关于ajax - Mongolab 和网络延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958138/