1

SQL Server: Index columns used in like?反向串在Postgres的領先通配符掃描

我使用查詢方法中的鏈接與Postgres的(0.3ms的改善)嘗試了上述,它似乎只與MySQL的工作速度更快(10倍)。

MYSQL

User Load (0.4ms) SELECT * FROM users WHERE reverse_name LIKE REVERSE('%Anderson PhD') 
User Load (5.8ms) SELECT * FROM users WHERE name LIKE ('%Anderson Phd') 

POSTGRES

User Load (2.1ms) SELECT * FROM users WHERE reverse_name LIKE REVERSE('%Scot Monahan') 
User Load (2.5ms) SELECT * FROM users WHERE name LIKE '%Scot Monahan' 

做了一些谷歌搜索,但不能很明白因爲我很新的數據塊。任何人都可以解釋爲什麼會發生?

回答

0

爲了支持前綴匹配Postgres裏爲您可能需要用合適的運營商級的索引字符類型列:text_pattern_ops文字等(除非你的數據庫的工作原理與「C」語言環境中,這是罕見的。)

或者您使用trigram索引來支持任何模式 - 那麼您不再需要「反向」技巧。

細節在此相關的問題:

您會看到沒有平凡規模的表,大規模性能的提高,只要一個指標可以用於查詢。查看EXPLAIN的查詢計劃。

+0

謝謝歐文!使用卦和它的工作! –