使用“contains”查询的最佳性能 - 字符串或对象引用

时间:2015-06-03 11:53:12

标签: performance search parse-platform hashtag

我正在使用Parse实现基于标签的搜索。我正在搜索的对象上有一个hashtags(字符串)数组,并使用query.containedIn来查找匹配项。工作正常。

但是,我想知道是否应该将数组更改为Parse Object-refs数组,并将实际的hashtags(字符串)存储为单独的对象。

PROS:

  1. 存放裁判的空间较小(大多数情况下)
  2. 更快的搜索(这是我的假设,以及问题的原因)
  3. 可以轻松提供已知主题标签列表
  4. CONS:

    1. 在搜索之前需要一个额外的查询来将hashtag字符串转换为对象列表(假设有一个会消耗性能增益吗?)
    2. 更新主题标签时需要额外的写入(主题标签对象)
    3. 我怀疑大多数对象都没有主题标签,那些可能会有一些标签。我不知道唯一主题标签的数量,但为了论证,让我们假设每个标签平均使用3次。

      有人知道切换时是否会有稳定的性能提升,还是取决于主题标签的数量和大小?或者根本没有收获?

      任何内幕消息都会非常感激,谢谢。

1 个答案:

答案 0 :(得分:0)

我终于开始制作一个微观基准,并认为我用我的发现更新了这个问题,所以FWIW:

似乎比较字符串与比较引用完全相同(假设所有内容都是JSON,这将是有意义的),因此它对查询性能的绝对影响如何存储这些内容。

事实上,对象ref的JSON表示似乎足够膨胀,实际上可以节省空间来存储字符串。

哦,关于更重要的问题。