【问题标题】:Tokyo Cabinet vs SQLite3 on iPhone东京内阁与 iPhone 上的 SQLite3
【发布时间】:2010-11-16 15:02:37
【问题描述】:

有人在 iPhone 上使用过 Tokyo Cabinet 吗?我有兴趣看看它和 SQLite3 之间是否存在任何现实世界的性能差异。

另外,SQLite 3 具有 SQL 的表达能力,Tokyo Cabinet 有什么查询语言吗?

任何意见将不胜感激,谢谢。

【问题讨论】:

    标签: iphone database sqlite comparison tokyo-cabinet


    【解决方案1】:

    我没有专门在 iPhone 上使用过,但我在各种项目中都使用过。正如您所指出的,SQLite 确实提供了 SQL 查询语言,这意味着您在搜索和查找数据方面拥有更大的灵活性。假设您熟悉 SQL,您将能够轻松过滤、关联和汇总结果。

    Tokyo Cabinet 提供了一种不同类型的数据存储系统,因为它是键值存储。顾名思义,这些系统用于存储(键、值)对。存储到 TC 中的数据必须有唯一的 key 才能被引用,并且只能被那个 key 引用。访问TC的接口基本就是value=get(key)和set(key,value)。

    从查询的角度来看,访问 TC 大致相当于使用 SQLite,并且只允许主键字段和一个其他数据字段。

    TC 的主要好处是性能。它是否会更好以及会好多少在很大程度上取决于工作量。一般来说,如果您只需要一个键值存储,那么您应该使用 TC,但如果您需要一种 SQL 查询语言,那么 SQLite 就可以了。

    【讨论】:

    • TC只提供key-value store是不对的; TC 的表数据库确实支持简单查询。它们等价于 SELECT ... WHERE x y,其中运算符可以是相等、字符串前缀、字符串后缀、字符串正则表达式、大于数字、小于数字。在tokyocabinet.sourceforge.net/tyrantdoc 中搜索 tcrdbqryaddcond。
    【解决方案2】:

    BNRPersistence 是一个基于 Tokyo Cabinet 的持久对象库,我认为它是一个非常好的解决方案。网络上有 Core Data 和 Tokyo Cabinet 之间的比较。

    【讨论】:

      【解决方案3】:

      东京内阁许可证不允许您进行静态链接,因此不能用于 iPhone 开发。

      【讨论】:

      • LGPL 不禁止静态链接。它要求您允许用户能够替换 LGPL,动态链接只是实现此目的的一种方法。您还可以发布您的应用程序源代码或目标代码。我知道这些对于某些开发人员来说是不可接受的解决方案,但我只想说清楚。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      相关资源
      最近更新 更多