建筑师对30-50K物体进行预测搜索?

时间:2018-01-20 21:38:41

标签: java angular caching search microservices

我必须构建一个搜索功能,其中GUI将提供搜索字段以搜索Oracle数据库中的对象。目前我必须搜索30K对象,但随着时间的推移,它们的数量会增加。每月300-400左右

作为要求的一部分,当用户键入搜索中的任何文本时例如" ABC",则包含ABC的数据库中的所有对象都应出现在数据表中,更像是系统预测结果基于用户在搜索字段中的类型。

问题是如何构建这样的功能?

简单的方法是在GUI Javascript对象中加载所有内容并对其进行搜索。由于JS速度非常快,性能不会成为问题。

另一种方法是在搜索字段中的文本中每次用户键入数据库中运行查询。这似乎不方便,因为它会给数据库带来不必要的负担。

有没有更好的方法来构建此功能?请分享想法。

1 个答案:

答案 0 :(得分:1)

过早优化很少有用。

每月300-400个对象增长,使用30k基础对象,任何数据库都无需处理。

在浏览器上一次加载所有30k对象是非常糟糕的,可能会影响性能,而查询结果在没有很多用户访问数据库的情况下,DB将不会出现此问题。

您应该使用数据库构建服务,然后如果/当您遇到瓶颈时,您可以考虑优化技巧,例如在数据库上缓存频繁查询。