android - 无模式数据存储相对于使用模式存储数据的优势

标签 android iphone web-services schema data-storage

我想为我的应用程序选择一个后端网络服务。阅读这些服务(Parse、Proxomo、Cocoafish、StackMob 等)的文档表明,其中一些服务提供以无模式形式存储数据,而另一些则提到必须先验指定模式。我了解什么是数据模式,并希望无模式易于使用,但想知道每种模式的优缺点。任何解释将不胜感激。

最佳答案

最大的区别是可扩展性。

具有模式的数据存储解决方案比无模式数据存储解决方案更难分发。它真的很容易复制(无模式)键值对以实现容错。跨节点分发副本以实现快速读取真的很容易,并且更容易提供具有最终一致性的快速写入。如果您正在管理自己的数据库,这意味着当您需要扩展到多个服务器时,管理无模式解决方案会容易得多。如果您使用的是服务,这意味着无模式解决方案通常更便宜、更快。

当您需要跨各种数据集或表的事务和一致性时,就会出现无模式问题。所有这些都必须在代码中完成。

所以底线是:如果您需要快速访问且价格低廉的海量数据,则它必须是无模式的。另一方面,如果您的数据大小和负载适中,则比基于模式的系统更好。

如果您在选择要使用的服务方面需要帮助,更好的决定方法是对您的应用程序进行每秒读/秒写和预期数据大小分析,然后选择更便宜的解决方案。所有这些服务都可能会根据您的负载进行扩展,但成本将是决定性因素。

关于android - 无模式数据存储相对于使用模式存储数据的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8986550/

相关文章:

java - Android - 使用编译时未知实现的 Java 接口(interface)

android - 获取错误的 id onItemClick

android - SQLiteDatabase 通过 NullPointerException

iphone - iCarousel 从 NSMutableArray 加载 UIViews

c# - 如何检索向 C# Web 服务发出请求的客户端的 IP

java - 将文本从 EditText 转换为整数值错误

iPhone企业部署: Mobile Device Management

iphone - 访问GTLPlusActivity属性

json - TypeScript 在对象数组上使用 forkJoin

调用 SOAP Web 服务的 Java/Groovy 方法(版本 1.2)