rob*_*y22 2 postgresql indexing optimization postgresql-performance
我有一个包含超过 30,000,000 个条目的数据库。当对字段执行查询(包括ORDER BY子句)时text,=运算符会产生相对较快的结果。然而我们注意到,当使用该LIKE运算符时,查询变得非常慢,需要几分钟才能完成。例如:
SELECT * FROM work_item_summary WHERE manager LIKE '%manager' ORDER BY created;
对正在搜索的关键字创建索引当然会大大加快查询速度。问题是我们必须支持对任意模式和任意列的查询,使得这个解决方案不可行。
我的问题是:
LIKE查询比查询慢得多=?您的查询计划显示了顺序扫描,这对于大表来说很慢,而且也不足为奇,因为您的LIKE模式具有普通 B 树索引无法支持的前导通配符。
您需要添加索引支持。要么是支持任何和所有模式的三元组 GIN 索引,要么是COLLATE "C"反转字符串上的 B 树表达式索引,专门针对前导通配符。
看:
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |