Nathan Boley wrote:
Because people can be smarter about the data partitioning.
Consider a table of users. Some are active, most are not. The active
users account for nearly all of the users table access, but I still
(occasionally) want to access info about the inactive users.
Partitioning users into active_users and inactive_users allows me to
tell the database (indirectly) that the active users index should stay
in memory, while the inactive users can relegated to disk.
-Nathan
On Thu, May 1, 2008 at 6:02 AM, Jeremy Harris <jgh@xxxxxxxxxxx> wrote:
Gurjeet Singh wrote:
One of the advantages
of breaking up your data into partitions, as professed by Simon (I think)
(and I agree), is that you have smaller indexes, which improve
performance.
And maybe having one huge index managing the uniqueness across partitioned
data just defeats the idea of data partitioning!
Isn't "large indexes are a performance problem" just saying
"we don't implement indexes very well"? And why are they
a problem - surely a tree-structured index is giving you
range-partitioned subsets as you traverse it? Why is this
different from manual partitioning into (inherited) tables?
Agreed, data placement is one reason for partitioning. But won't
this happen automatically? Won't, in your example, the active
part of a one-large-index stay in memory while the inactive parts
get pushed out?
Cheers,
Jeremy