创建索引查询问题

提问参考模版:

  • nebula 版本:2.0.1
  • 部署方式(分布式 / 单机 / Docker / DBaaS):分布式
  • 是否为线上版本:N
  • 硬件信息
    • 磁盘( 推荐使用 SSD)
    • CPU、内存信息
  • 问题的具体描述
  • 相关的 meta / storage / graph info 日志信息

有两个问题想问下:
1.单个索引和复合索引速度上有什么区别?
我创建了tag(t1,t2,t3)索引,根据左匹配,只要是起始条件t1索引都能进行查询,也支持t1单个查询,那复合索引包含了单个索引,单个索引可以不使用?
2.模糊查询有没有好的方法支持多个条件的,比如先通过一个条件模糊查询出来结果,再通过管道再在结果中查询,这个根据第一个查询出来后的结果量如果数据量大了会不会挂掉?
如果需要用到模糊查询和普通查询该怎么处理这块?

问题1,是的如果有了复合索引,可以替代单个索引,此时独立的单个索引可以不创建。
问题2,可以通过lookup | yield 来处理模糊查询和普通条件过滤,此时可能会出现因为结果集数据量太大而导致的OOM问题,此时建议在lookup模糊查询函数中对timeout和limit参数进行设置,以此保证查询性能和避免OOM。

1.CONTAINS函数不能用于大数据量的模糊查询吧,之前有测试过60w数据,直接查询不出来,大数据量是使用es?业务会涉及到模糊查询和普通查询一起使用的场景,这个很频繁。如果单独使用单条件模糊查询,在千万级的tag上肯定会返回结果集大而OOM。
2.lookup模糊查询函数中怎么设置timeout和limit,没有看到这方面的说明。

浙ICP备20010487号