当前位置: 首页 > 知识库问答 >
问题:

Tarantool中的复杂SELECT

林英武
2023-03-14

有两个空格,分别命名为公司汽车。SpaceCompany具有Company id(主要索引)和geolocation(点)字段(次要索引)。空间Cars包含car(主要索引)和companys(可租用此车的所有公司的数组)。我需要得到前10名的公司在指定的矩形,在那里可以租用特定的汽车。实现这一目标的最佳解决方案是什么?

在这里,我需要结合空间索引和非空间索引以获得结果。我的搜索计划是查找汽车元组并获取所有公司(可能有1000家),然后在另一个空间中过滤指定矩形内的10家公司。

我的用例与此类似(不是租车用例),但所有逻辑都是一样的。将会有比汽车更多的公司(数百万公司和300500k汽车)。如何优化我的计划以获得这些信息,使用什么索引等。?如您所见,一个选择需要有空间和非空间条件。

共有1个答案

申屠俊发
2023-03-14

我认为这种索引的最佳策略是将你的汽车映射到另一个维度的点,彼此相距足够远。例如,如果你的典型搜索是在几平方公里内,确保每辆车“坐标”距离最近的邻居车至少几十公里。然后您可以使用我们的多维RTREE索引进行搜索。

 类似资料:
  • 我一直在使用关系数据库,最近决定将性能关键服务从SQL服务器迁移到Tarantool,希望利用内存中的快速搜索和处理。在计划迁移时,我有几个问题。 我有一个包含大约一百万条记录的表,其中包含定价信息,这意味着我主要处理的是数字和UUID。首先,我需要运行一个包含多个条件的select来获取数据的子集,如 Q1:在Lua中运行这样一个查询的策略是什么?我是为谓词中的每个字段创建索引,还是可以使用一个

  • Tarantool 是一个用 Lua 语言编写的嵌入式 NoSQL 数据库,可以直接在 Lua 程序中运行。合并了 Node.js 的强大网络编程和 Redis 数据持久。 示例代码: #!/usr/bin/env tarantoolbox.cfg{}hosts = box.space.hostsif not hosts then    hosts = box.schema.create_spac

  • 我有两个表:user,user\u匹配。我想在一个查询中从两个表中获取项。例如,类似SQL的查询: 通常我应该在NoSQL数据库中使用2查询。现在我这样做: 从user_matchinguser_id 与user_id从用户获取 我可以用Tarantool的一个查询来替换它吗。那怎么做呢?

  • 使用类似SQL的关键字在Tarantool DB中进行查询的正确方法是什么?例如:

  • Tarantool现在有一个内置类型UUID。 如何插入一条记录并使用https://github.com/tarantool/go-tarantool?传递这个字段 现在我有这个: 尝试将UUID作为字符串插入时 指数:

  • 问题内容: 我想在下面学习给定语句的时间复杂度。(在Java8中) 任何想法? 问题答案: 由于时间复杂度取决于所有操作,因此没有通用的答案。由于必须完全处理流,因此必须将其基本时间复杂度乘以每个元素完成的所有操作的成本。假设迭代成本本身并不比差,大多数流源就是这种情况。 因此,假设没有影响时间复杂度的中间操作,则必须评估每个元素的功能,该功能应独立于其他元素,因此不影响时间复杂度(无论它有多昂贵