我正在character varying(256)
PostgreSQL 8.3.3中的类型列上执行正则表达式匹配.该列目前没有索引.如果可以的话,我想提高这个查询的性能.
添加索引会有帮助吗?还有其他我可以尝试帮助提高性能的东西吗?
您无法创建将加速任何通用正则表达式的索引; 但是,如果您正在匹配一个或有限数量的正则表达式,则有几个选项.
正如Paul Tomblin所提到的,您可以使用额外的一列或多列来指示给定行是否与正则表达式或正则表达式匹配.该列可以编制索引,并有效查询.
如果你想更进一步,本文讨论了一种有趣的声音技术,用于对正则表达式进行索引,包括在正则表达式中查找长子串并根据文本中是否存在这些子索引来生成候选匹配.这会过滤掉实际需要检查正则表达式的行数.您可以使用GiST索引来实现这一点,尽管这将是一项非常重要的工作.