用于移动应用的 NoSQL? [关闭]

Posted

技术标签:

【中文标题】用于移动应用的 NoSQL? [关闭]【英文标题】:NoSQL for mobile apps? [closed] 【发布时间】:2011-05-08 00:37:31 【问题描述】:

是否有任何已建立的 noSQL 数据库解决方案可用于开发原生移动应用程序(android 和/或 iO)?

【问题讨论】:

【参考方案1】:

我认为对于原生移动应用程序已建立 NoSQL 后端,但 Couchbase Mobile 是一个出色的 NoSQL 数据库,可同时用于 ios 和 Android。

iOS:http://www.couchbase.com/products-and-services/mobile-couchbase

安卓:https://github.com/couchbase/couchbase-lite-android

【讨论】:

Android 链接已失效。还有 couchbase != couchDB。【参考方案2】:

leveldb 是这个街区的新人。 它是一个类似于 BigTable 的键/值存储,但专为嵌入式设备而设计。他们的许可证是New BSD,比东京内阁的LGPL好很多。

它的速度非常快,并且直接使用 Xcode 构建。

【讨论】:

不需要。在这些平台上编译是 C++ 和琐碎的。 libz 也没有提到 iOS 或 Android,每个人都在内部使用它。【参考方案3】:

如果有用于移动操作系统的 Tokyo Cabinet 端口,我不会感到惊讶;但说真的,NoSQL 会为每个 平台中已经包含的 SQLite 库带来什么?

简单的语义。在 SQL 中执行键/值与在任何 NoSQL 数据库中一样容易 可扩展性。支持数 PB 的手机不符合移动平台的条件。 琐碎的分片。手机集群还没有那么流行 小实现。 tokyo cabinet源代码是4.8MB,SQLite是4.7MB。没有真正的收获(而且它已经存在)。

简而言之,如果需要,您可以将 SQLite 用作“小型 NoSQL”。它也相当快。

【讨论】:

无模式数据模型、文档数据库、图数据结构、多列数据库、复制呢? 无模式和文档数据库只不过是键值和“将 XML|JSON 文档存储在值中”。复制...在手机上?列数据库用于大数据(在小数据和非磁性存储上,行和列数据库是等效的)图形数据......这很有趣,但同样,对于小数据集,CPU 能力远远超过记录之上基于数据。【参考方案4】:

编辑:(2016 年 4 月)

Realm 是当今的发展方向。


如果还有人感兴趣,我已经为 TokyoCabinet 找到了这两个包装器:

TSDocDB BNRPersistence

无论如何,我认为 LevelDB 更好。

【讨论】:

你确定 Realm 是 NoSql 吗?! 好吧NoSql 是一个非常模糊的术语,它指的是任何不以标准关系方式存储数据的数据库。 Realm 是一个Object Database,它适合 NoSql 数据库的配置文件。【参考方案5】:

对于 android 有这样的:

https://github.com/rehacktive/waspdb

目前是 alpha 阶段,但它可以满足您的要求。

【讨论】:

【参考方案6】:

CouchDB 经常被宣传为移动应用程序的 NoSQL 数据库,因为它具有同步功能。还有Mobile Couchbase 的测试版。

【讨论】:

【参考方案7】:

SnappyDB 对于 android 来说似乎是相当不错的 NoSQL 选项。针对 SQLite 的读/写基准测试非常惊人。

【讨论】:

虽然 snappydb 是一个很好的解决方案,但是查询非常昂贵,因为我们不能像在 NoSQL 中那样查询值。我们必须将所有列表放入内存并应用过滤器才能获得原始结果,这似乎非常昂贵。请纠正我 @DRYBeliever 虽然我同意你的观点,所以为你的评论 +1,我想知道你所说的任何其他嵌入式 NoSQL 解决方案是否在内部没有做同样的事情【参考方案8】:

iBoxDB 是一个高性能的 NoSQL 数据库,适用于 Android 和 Windows Phone。易于使用,零配置,复制和运行。 对于 java android https://github.com/iboxdb/forjava for.net windows phone https://iboxdb.codeplex.com/

【讨论】:

【参考方案9】:

我在 Objective-C 中编写的新东西是 SimpleDB。它是一个键/值存储,可以在这里找到:http://github.com/AaronBratcher/SimpleDB

因为存储的值必须是JSON,所以可以完成排序并返回数据的特定部分。

特殊功能

非常易于使用 - 无需 SQL! 指定日期之后的条目的自动删除选项 无需直接与数据库交互即可使用该类 - 全部完成 所有方法都是类级别的方法,因此不需要类的实例 线程安全

API

+(BOOL) hasKey:(NSString*) key inTable:(NSString*) table;
+(NSArray*) keysInTable:(NSString*) table;
+(NSArray*) keysInTable:(NSString*) table orderByJSONValueForKey:(NSString*)jsonOrderKey passingTest:(BOOL (^)(NSString* key, NSString* value, NSDate* dateAdded, NSDate* dateModified));

+(NSString*) valueForKey:(NSString*) key inTable:(NSString*) table;
+(NSDictionary*) dictionaryValueForKey:(NSString*) key inTable:(NSString*) table;
+(id) jsonValueForKey:(NSString*) jsonKey tableKey:(NSString*) key inTable:(NSString*) table;

+(void) setValue:(NSString*) value forKey:(NSString*) key inTable:(NSString*) table;
+(void) setValue:(NSString*) value forKey:(NSString*) key inTable:(NSString*) table autoDeleteAfter:(NSDate*) date;

+(void) deleteForKey:(NSString*) key inTable:(NSString*) table;

+(void) dropTable:(NSString*) table;

+(dbStatus) status;
+(NSString*) guid;

【讨论】:

以上是关于用于移动应用的 NoSQL? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

XMPP App Engine 服务不适用于移动 Gtalk 应用 [关闭]

用于从 mysql 服务器获取移动应用程序数据的 PHP 代码 [关闭]

用于调查应用工具的 SQL 或 NoSQL [关闭]

哪个是移动应用程序开发的最佳跨平台框架? [关闭]

适用于 iPhone 应用的移动 OCR 引擎 [关闭]

在 Web 应用程序上使用 NoSQL,而不是使用 SQL [关闭]