相关疑难解决方法(0)

使用 id 和 string 进行搜索的变量类型

我需要在内存中存储大约 500-1000 个条目的 3 个字段,并通过 int 和 str 值进行快速有效的搜索。搜索发生在大约 300-500 个请求的快速突发中。我不确定如何有效地做到这一点。

存储的数据由 3 个字段组成:

  1. ID - 整数,不会是连续的。即它会像 (3, 5, 12, 55),但不是 (1, 2, 3, 4, 5)。
  2. 名称 - 字符串。
  3. 标签 - 字符串。

有3种可能的情况:

  1. 按名称获取 ID。
  2. 通过 ID 获取名称。
  3. 通过 ID 获取标签。

目前,我使用两种不同的类型:

  1. 带有密钥对“%s=%i”的 THashedStringList 按名称搜索。
  2. 其他搜索按 ID 排序的记录数组。

我发现这非常低效,目前正在寻找新的想法。任何提示?

delphi delphi-10-seattle

5
推荐指数
2
解决办法
190
查看次数

在mongodb中使用索引的运行时

基于mongodb 文档

ensureIndex()函数仅在不存在时创建索引.

一旦集合在密钥上编入索引,对与指定密钥匹配的查询表达式的随机访问就会很快.如果没有索引,MongoDB必须遍历每个文档,检查查询中指定键的值:

db.things.find({j:2});  // fast - uses index
db.things.find({x:3});  // slow - has to check all because 'x' isn't 
Run Code Online (Sandbox Code Playgroud)

这是否意味着第一行代码运行时是big_theta = 1,第二行代码是big_theta = n

algorithm indexing runtime mongodb

3
推荐指数
1
解决办法
540
查看次数