SpeedInfo speedInfo = request.getSpeedInfo();
if (speedInfo == null || // short circuit here means
speedInfo.getBandwidth() == null || // that here speedInfo is not null
speedInfo.getBandwidth().isEmpty()) { // Assuming getBandwidth() is a String or similar
throw new Exception(" SpeedInfo Bandwidth must be passed in the request ");
}
来查找它们,字段person_code
是一个字母数字字符串。我创建了一个索引:
create index my_idx on persons( some_function(person_code) )
但是,当我尝试这样的事情时:
select * from persons where some_function(person_code) like 'mycode%'
我最终进行了顺序扫描而不是索引扫描。根据{{3}},LIKE
应该使用索引,只要匹配模式是一个常量并锚定到字符串的开头。
答案 0 :(得分:0)
如果没有EXPLAIN ANALYZE
的示例查询,很难协助解决您的问题,但您可以查看 pg_trgm
模块here。 ILIKE/LIKE
操作的示例索引可能如下:
CREATE INDEX idx_persons_person_code_trgm ON person USING gin (person_code gin_trgm_ops);
值得检查的文章: