为了账号安全,请及时绑定邮箱和手机立即绑定

类似PostgreSQL的查询性能变化

类似PostgreSQL的查询性能变化

神不在的星期二 2019-06-16 16:17:00
类似PostgreSQL的查询性能变化我已经看到在响应时间上有相当大的变化LIKE对数据库中特定表的查询。有时我会在200到400毫秒内得到结果(非常可以接受),但其他时候可能需要30秒才能返回结果。我明白LIKE查询非常耗费资源,但我只是不明白为什么响应时间会有这么大的差异。我已经在owner1但我觉得这对LIKE查询。有人有什么想法吗?示例SQL:SELECT gid, owner1 FORM parcelsWHERE owner1 ILIKE '%someones name%' LIMIT 10我也试过:SELECT gid, owner1 FROM parcelsWHERE lower(owner1) LIKE lower('%someones name%') LIMIT 10以及:SELECT gid, owner1 FROM parcelsWHERE lower(owner1) LIKE lower('someones name%') LIMIT 10有着相似的结果。表排数:大约95,000。
查看完整描述

3 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

可能快速的模式是锚定模式,具有区分大小写的特性,比如可以使用索引。也就是说,在匹配字符串的开头没有通配符,所以执行者可以使用索引范围扫描。(文档中的相关评论在这里)除非专门为此创建索引,否则Ler和ilike也将失去使用索引的能力(请参见功能指标).

如果要在字段中间搜索字符串,则应查看全文曲线图指标..第一种是在Postgres核心,另一种是在控制模块中。


查看完整回答
反对 回复 2019-06-16
?
茅侃侃

TA贡献1842条经验 获得超21个赞

你可以安装野速,这是PostgreSQL中的一种不同类型的索引。野生速度使用%word%通配符,没有问题。缺点是指数的大小,这可能很大,很大。


查看完整回答
反对 回复 2019-06-16
  • 3 回答
  • 0 关注
  • 686 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信