关于对数据库中某个特定表的 LIKE
查询,我一直看到响应时间有很大的变化。有时我会得到结果在200-400毫秒(非常可以接受) ,但其他时候可能需要多达30秒才能返回结果。
我理解 LIKE
查询是非常耗费资源的,但我只是不明白为什么响应时间会有这么大的差异。我已经在 owner1
字段上构建了一个 btree 索引,但是我不认为它对 LIKE
查询有帮助。有人知道吗?
示例 SQL:
SELECT gid, owner1 FORM parcels
WHERE owner1 ILIKE '%someones name%' LIMIT 10
我也试过:
SELECT gid, owner1 FROM parcels
WHERE lower(owner1) LIKE lower('%someones name%') LIMIT 10
还有:
SELECT gid, owner1 FROM parcels
WHERE lower(owner1) LIKE lower('someones name%') LIMIT 10
结果也差不多。
餐桌行数: 约95,000。