我正在使用 Postgres 9.5。我将运行大量此类查询
SELECT *
FROM mydb_article
where regexp_replace(url, '\?.*$', '') = :url_wo_query_string
所以我想我需要在我的表上为该操作创建一个功能索引。所以我试过了
mydb=> CREATE INDEX my_article_idx ON mydb_article regexp_replace(url, '\?.*$', '');
ERROR: syntax error at or near "regexp_replace"
LINE 1: CREATE INDEX my_article_idx ON mydb_article regexp_repl...
我的问题是,我应该使用的最合适的索引类型是什么?如果是上述类型的索引,我还需要做些什么才能使事情正常进行?
索引的表达式列表必须放在括号中
on table_name (a,b,c)
。如果索引表达式不仅仅是列名,则表达式本身也必须用括号括起来: