1

What is the concept of Sharding from Database Design perspecitve ?

skaffman
  • 398,947
  • 96
  • 818
  • 769
Rachel
  • 100,387
  • 116
  • 269
  • 365
  • 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 Answers2

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
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
  • 3
    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 Oct 24 '09 at 23:44