Re: [SQL] Single vs. multiple indexes
От | Jeff Aitken |
---|---|
Тема | Re: [SQL] Single vs. multiple indexes |
Дата | |
Msg-id | 199807091804.OAA03845@gizmo.dimension.net обсуждение исходный текст |
Ответ на | Re: [SQL] Single vs. multiple indexes (Bruce Momjian <maillist@candle.pha.pa.us>) |
Ответы |
Re: [SQL] Single vs. multiple indexes
|
Список | pgsql-sql |
Bruce Momjian writes: > Good question. The optimizer can only use only one index in a query, so > if you create five indexes, the optimizer will pick the best one to use, > and disregard the rest. If you create one index with five fields, it > will use as much of the index as it can. If you restrict on the first > field of the index, it will use only that part of the index. If you > restrict on the first three fields, it will use all three parts, > resulting in better performance than just having an index on the first > field. > > If you restrict only on the second field of the index, the index is > useless and will not be used. > Just to be sure I understand what you're saying here, let's assume I've got a table with three integer fields a, b, and c. I can do one of two things: 1. Create an index on (a), an index on (b), and an index on (c). 2. Create an index on (a, b, c). Now let's assume I perform a query that references b only. In this case, if I understand you correctly, method #1 above is better, because the index in method #2 will not be used. However, if I perform a query that references a and b, then method #2 would be better, because the composite index will be used, whereas in method #1, only one of the two relevant indices would be chosen? --Jeff
В списке pgsql-sql по дате отправления: