首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >散列和Skiplist索引并行?

散列和Skiplist索引并行?
EN

Stack Overflow用户
提问于 2018-02-12 14:31:47
回答 1查看 67关注 0票数 2

在并行中为相同的字段设置散列索引和跳过者索引是否有意义?Arango会对相等查询使用散列索引,对范围请求使用跳过索引吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-12 15:24:19

在同一属性(甚至多个属性)上有一个跳过索引和一个散列索引是可能的。用于查询的索引取决于以下几个因素:

  • 对于相等查找:索引的选择性估计(如果由索引类型提供)
  • 对于范围查询:使用的界限数(筛选条件(例如attribute > leftBound && attribute < rightBound )将比仅使用attribute > leftBound更有可能使用跳过列表索引)
  • 集合中的文档数。
  • 如果索引可用于优化后继排序子句
  • 如果索引稀疏:如果条件可以包括null值(在本例中,索引将不被使用,无论它是哈希索引还是跳过索引)

将使用哪个索引(如果有的话)将始终通过在特定查询上运行db._explain(query)来显示。

但是,在相同属性上设置多个索引有一个缺点,即每个单独的索引都会稍微减缓对集合的写入。对于基于RocksDB的索引,每个附加索引也将占用磁盘空间。对于基于MMFiles的索引,服务器启动/收集负载上的索引建立时间是要考虑的因素,以及每个索引的额外RAM使用情况。

因此,在大多数情况下,这是在某些查询可能获得的额外查找速度与额外内存/磁盘空间和索引建立/维护成本之间的权衡。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48748791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档