How to handle secondary keys in partitioning?
Say I have a table "Message" and I want to partition it by "recipient_id".
That way when I want to get all messages sent to a certain user, I only need to query a single partition.
But sometimes I also want to query for all messages sent by a certain user. In that case I'd need to send query to every single partition and then merge the results before sorting them.
Is that going to be very slow (much slower than without using partition) because I'd need to run the query N times (N being the number of partitions) and I can't use index in sorting the final results?
So does it make sense to use partition in a scenario like this where I have secondary indexes & queries that are "cross-partition"?
And what if I want to use Spider Engine to turn the partitions into separate DB shards? Would these cross-shard queries (such as querying for messages from a certain sender) be even slower?
This must be a pretty common scenario. Is there any tricks in dealing with cross-partition queries/indexes like this?
Thanks.
Subject
Views
Written By
Posted
How to handle secondary keys in partitioning?
4045
May 04, 2010 12:46AM
2308
May 04, 2010 01:29PM
1946
May 04, 2010 04:30PM
2143
May 05, 2010 02:20AM
2008
May 06, 2010 12:04AM
2407
May 06, 2010 03:23PM
2047
May 06, 2010 10:50PM
2023
May 07, 2010 02:38AM
1984
May 08, 2010 05:31PM
2040
May 09, 2010 04:37AM
1913
May 09, 2010 12:41PM
1885
May 09, 2010 01:23PM
1985
May 12, 2010 05:29AM
2440
May 06, 2010 12:34AM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.