Postgres,例如使用%wildcard%

时间:2019-01-28 14:19:29

标签: postgresql indexing query-optimization

我有一种情况,我必须根据提供的参数对数据库进行全文搜索。 因此,假设 first_name 是否提供,我只是在做查询:

where(unaccent(first_name) ilike %{params[:first_name]}%

如果 last_name 仅提供了以下一项:

where(unaccent(last_name) ilike %{params[:last_name]}%

如果两者都提供,那我就在做:

where(unaccent(first_name) ilike %{params[:first_name]}% AND 
where(unaccent(last_name) ilike %{params[:last_name]}%

请注意,还有3个类似的字段。

我知道我可以为每个字段添加GIN索引并很快地使用它,但这肯定会增加存储空间并减慢其他操作的速度,所以我不太喜欢它。 / p>

有什么建议可以使它更快,更优化,但又不减慢其他部分的速度。

0 个答案:

没有答案