What is the concept of Sharding from Database Design perspecitve ?
+2
A:
Partitioning the key space across a cluster of DB servers to distribute the service load and promote scalability of the overall system.
And a good/detailed article on sharding: http://www.codefutures.com/database-sharding/
Marcel J.
2009-10-24 23:31:20
+1
A:
Well you could start by reading the wikipedia article on it, and perhaps the Hibernate Shards documentation. If you then have a more specific question, then ask that.
Horizontal partitioning is a design principle whereby rows of a database table are held separately, rather than splitting by columns (as for normalization). Each partition forms part of a shard, which may in turn be located on a separate database server or physical location. The advantage is the number of rows in each table is reduced (this reduces index size, thus improves search performance).
skaffman
2009-10-24 23:27:49
This seems to equate sharding with horizontal partitioning, which is misleading. Sharding is breaking up the db into multiple instances; it involves issues with replicating shared state, migrating shards to load-balance, etc. Partitioning is on a per-table basis, and often does not involve multiple instances.
SquareCog
2009-10-24 23:44:17