Re: How should we design our tables and indexes
От | Peter J. Holzer |
---|---|
Тема | Re: How should we design our tables and indexes |
Дата | |
Msg-id | 20240213152917.qwjikj6gcfegjt3a@hjp.at обсуждение исходный текст |
Ответ на | Re: How should we design our tables and indexes (Greg Sabino Mullane <htamfids@gmail.com>) |
Ответы |
Re: How should we design our tables and indexes
|
Список | pgsql-general |
On 2024-02-12 11:46:35 -0500, Greg Sabino Mullane wrote: > If PR_ID is a must in the Join criteria between these table tables table1, > table2 in all the queries, then is it advisable to have a composite index > like (pr_id, mid), (pr_id,cid) etc rather than having index on individual > columns? > > > No - individual indexes are better, and Postgres has no problem combining them > when needed. I'm a bit unsure if I should mention this as veem probably benefits more from hard and simple rules than more nuanced answers, but that really depends on the type of query. For some kinds of queries a composite index can be dramatically faster. While Postgres can combine indexes that means scanning both indexes and combining the result, which may need a lot more disk I/O than scanning a composite index. Indeed, in the cases where a composite index would be useful but doesn't exist, PostgreSQL usually just chooses the best of the single column indexes and ignores the rest. That said, my rule of thumb is to create just single column indexes at first and only create composite indexes if they are necessary. hp -- _ | Peter J. Holzer | Story must make more sense than reality. |_|_) | | | | | hjp@hjp.at | -- Charles Stross, "Creative writing __/ | http://www.hjp.at/ | challenge!"
Вложения
В списке pgsql-general по дате отправления: