What is the concept of Sharding from Database Design perspecitve ?
Asked
Active
Viewed 1,759 times
1
-
It's roughly equivalent to "pain, pain, pain". But if you must, there is a ton of info on percona.com . In particular, I recommend http://www.percona.tv/performance/baron-schwartz-high-performance-mysql-from-a-boring-architecture-ppc-2009 – SquareCog Oct 24 '09 at 23:39
-
Duplicate of http://stackoverflow.com/questions/992988/what-is-sharding-and-why-is-it-important – Jim Ferrans Oct 25 '09 at 07:06
2 Answers
2
Partitioning the key space across a cluster of DB servers to distribute the service load and promote scalability of the overall system.

alphazero
- 27,094
- 3
- 30
- 26
-
1And a good/detailed article on sharding: http://www.codefutures.com/database-sharding/ – Marcel Jackwerth Oct 24 '09 at 23:31
1
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
- 398,947
- 96
- 818
- 769
-
3This 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 Oct 24 '09 at 23:44