我正在使用reactjs作为前端,并使用spring boot作为后端。我正在使用Spring Data JPA。

这是我的两难选择。我知道编写逻辑的方式效率很低,并且想知道和理解解决此问题的更好方法。

可以说数据库中有成千上万条记录,我需要不断且即时地检索它们(如果可能)

我在UI中有2个字段。一个是字符串,另一个是整数。

名称(字符串)SomeKindOfId(整数)
------------- -------------------

仅在“名称”字段和/或“ SomeKindOfId”字段中输入3个字符后,才需要过滤记录。

如何有效地做到这一点?

目前,我有


  findAllByNameAndSomeKindOfId(“%” +名称+“%”,“%” + String.valueOf(SomeKindOfId)+“%”)


在服

在存储库类中是这样的

Query("Select u from SomeTable u where u.name = :name and CAST(u.someKindOfId As string) like :someKindOfId")
List<CdoDimStPortfolio> findAllByEntityStatusAndDealName(@Param("name") String name,
        @Param("someKindOfId") String someKindOfId);


我使用强制转换的原因是因为我在数据库中有someKindOfId作为int

最佳答案

进行有效的数据库查询的最佳方法是根据要搜索的值创建索引。

您可以创建索引“ name”和“ someKindOfId”,并且将立即搜索这些值,因为就像在书本中一样,如果您逐页搜索章节,则比查找索引要花费更长的时间,寻找它。

例如对于postgresql:

https://www.postgresql.org/docs/9.1/sql-createindex.html


  CREATE INDEX在指定表的指定列上构造索引。索引主要用于增强数据库性能

08-25 22:49