3 ms·
Sharding is a technique used mostly in the MySQL to overcome MySQLs horrible performance issues once the database gets bigger than what can be contained in RAM.
by trezor 18y ago
Sharding is a technique used mostly in the MySQL to overcome MySQLs horrible performance issues once the database gets bigger than what can be contained in RAM.
It also alliviates some of the pains associated with big tables, since MySQL doesn't hava hash-joins and hence has to do row lookups when joining multiple tables. This obviously goes to hell if you are trying to join more than a few rows.
Basically you are not too far off when you say "horizontal partioning", as this (again as far as I have understood it) is a very specific implementation for this.
Basically you partition your data horizontally across multple servers using some predefined/known system and have the client figure out which server it should connect to to get the actual data it needs.
This completely kills the ability to do efficient joins, blows up any ability to sanely implement referential integrity, makes a mess of your code and really has few advantages besides making MySQL able to scale.
People using proper database systems wouldn't know this technique as it is ass backwards in any way you would want to approach databases, is not needed, since most good DBs can handle databases bigger than whatever RAM the server has, not to mention that since it would dislalow efficient joins, this would actually be a way to decrease performance as opposed to improving it.
- AlisdairO 18y agoThanks for the info :-)