adrobj wrote:
This is probably a FAQ, but I can't find a good answer... So - are there common techniques to compensate for the lack of clustered/covering indexes in PostgreSQL? To be more specific - here is my table (simplified): topic_id int post_id int post_text varchar(1024) The most used query is: SELECT post_id, post_text FROM Posts WHERE topic_id=XXX. Normally I would have created a clustered index on topic_id, and the whole query would take ~1 disk seek. What would be the common way to handle this in PostgreSQL, provided that I can't afford 1 disk seek per record returned?
You can cluster the table, see http://www.postgresql.org/docs/8.2/interactive/sql-cluster.html.
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match