Hi,
I have to manage a database that is getting way too big for us.
Currently db size is 304 GB.
One table is accounting for a third of this space.
The table itself has 68.800.000 tuples, taking 28GB.
There are 39 indices on the table, and many of them use multiple
columns. A lot of these indices share the same column(s).
The indices are taking 95GB.
So, here are my questions:
- do these figures seem normal or is there likely a bigger problem ?
- when indices share a column, is it worth creating several multi-column
indices (as we do now), or would we get the same result (from a
performance point of view) by creating several single column indices
(one for each column) ?
- does the order in which a multi-column index is created matter ? That
is, if I have a column A with less discriminating values and a column B
with more discriminating values, does it matter if I:
'CREATE INDEX myindex ON mytable USING (A,B) '
or
'CREATE INDEX myindex ON mytable USING (A,B) '
Is the second solution likely to behave faster ?
Or is it simply better to:
CREATE INDEX myindexa ON mytable USING (A);
CREATE INDEX myindexb ON mytable USING (B);
- as we do many insert and very few update/delete, I thought REINDEX was
going to be superfluous. But REINDEXing is often needed to keep the size
of the db _relatively_ reasonable. Does it sound normal ?
Thanks for any tip,
Franck