To be more explicit, let's say I have table with two fields a and b. If I have an index on (a,b) and I do a request like "SELECT b FROM table WHERE a=x", will Postgresql use only the index, or will it need to also read the table page for that (those) row(s)?

It must read the table because of visibility considerations.

There might be a reason why this is not possible (I don't know if the indexes have all necessary transaction ID information?) but otherwise this could possibly provide an interesting performance gain for some operations, in particular with some types of joins. Or maybe it already does it.

It's already been thought of :)

The 4 or so columns that store visibility information are not in the indexes, to do so would require a significant write cost.


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to