我在一個有720萬行的表上運行不區分大小寫的搜索,我想知道是否有任何方法可以使這個查詢更快?任何使PostgreSQL計數查詢更快的方法?
目前,只需要一個搜索參數,大約需要11.6秒才能執行,而且我擔心只要添加多個搜索參數,該查詢就會變得非常慢。
SELECT count(*)
FROM "exif_parse"
WHERE (description ~* 'canon')
---編輯---
phpPgAdmin的告訴我,有此列的索引如下定義:
desc_idx CREATE INDEX desc_idx ON exif_parse USING btree (description)
---編輯2 ----
該數據庫包含這種格式記錄:
imaage_id exif_field description
並且我將描述作爲搜索運行,因此它包含來自Lens(Pentax-1)的色調曲線(0,0,32,22,64,56,128,128,192,196,255,255) F FISH-EYE 1:3.5-4.5 17-28mm)(佳能EOS REBEL XSi)
FTS? http://www.postgresql.org/docs/8.3/static/textsearch-tables.html – 2010-06-08 19:14:25
通過創建一個特定的索引? – Tarantula 2010-06-08 19:17:40
@OMG小馬:你應該給出這個答案 – araqnid 2010-06-08 19:37:38