0

一般来说,假设您在与您的服务器在同一台机器上运行的数据库中有一个 (<16mb) 表。如果您需要对此表进行大量查询(%100 次读取),最好:

  1. 获取整个表,并在服务器代码中执行所有搜索/查询/。
  2. 对本地数据库进行大量查询。

如果数据库是本地的,是否可以利用dbms高效的内部数据结构进行查询,或者是延迟,以便将数据库返回的表映射到我自己的数据结构中更快。

谢谢。

4

1 回答 1

0

这将在很大程度上取决于您正在执行的搜索类型。

  • 如果您的数据都是 ID 查找,那么将其放在 RAM 中可能会更快。
  • 如果您的数据全部是完整扫描(没有索引),那么将它放在 RAM 中可能会更快。
  • 如果您的数据使用索引,那么将它放在数据库中可能会更快。

当然,数据库的大部分吸引力在于索引和通用查询接口,因此您必须权衡它们的价值与原始速度。

如果不确切知道数据的性质和要对其进行的查询,就无法真正回答这个问题。在线时间有其成本,BSON <-> 本机编组也是如此,但索引搜索可以是 O(log n),而不是对简单的内存数据进行愚蠢的 O(n)(或更糟)搜索结构体。

您是否尝试过基准测试?

于 2013-08-01T22:34:53.420 回答