字符串类型的PostgreSQL索引

pei*_*tur 3 string postgresql indexing

PostgreSQL如何索引字符串和varchars?

它是索引完整的"字符串"还是只是其中的一部分?

到目前为止,我已经假设它正在使用完整的字符串,但从未真正得到验证.

Erw*_*ter 8

它使用整个字符串.如果只想使用字符串的一部分,则始终可以在表达式上使用索引.喜欢:

CREATE INDEX some_idx ON tbl (left(col, 10));
Run Code Online (Sandbox Code Playgroud)

left()需要PostgreSQL 9.1或更高版本.对于旧版本:

CREATE INDEX some_idx ON tbl (substr(col, 1,10));
Run Code Online (Sandbox Code Playgroud)