sql >> Databáze >  >> RDS >> Mysql

Sdílení databáze vs dělení na oddíly

Rozdělení je spíše obecný termín pro rozdělování dat mezi tabulky nebo databáze. Sdílení je jeden specifický typ dělení, součást toho, co se nazývá horizontální dělení.

Zde replikujete schéma přes (obvykle) více instancí nebo serverů pomocí nějaké logiky nebo identifikátoru, abyste věděli, která instance nebo server má data hledat. Identifikátor tohoto druhu se často nazývá "Shard Key".

Běžnou bezklíčovou logikou je použití abecedy k rozdělení dat. A-D je instance 1, E-G je instance 2 atd. Zákaznická data se pro to dobře hodí, ale pokud rozdělení nezohlední, že některá písmena jsou běžnější než jiná, budou jejich velikost mezi instancemi poněkud zkreslená.

Další běžnou technikou je použití systému nebo logiky synchronizace klíčů, které zajistí jedinečné klíče napříč instancemi.

Dobře známým příkladem, který si můžete prostudovat, je to, jak Instagram vyřešil jejich rozdělení v prvních dnech (viz odkaz níže). Začínali rozděleni na velmi málo serverů a pomocí Postgresu rozdělovali data od začátku. Věřím, že to bylo několik tisíc logických střípků na těch pár fyzických útržcích. Přečtěte si jejich úžasný zápis z roku 2012 zde:Instagram Engineering – Sharding &IDs

Viz také zde:http://www.quora. com/Whats-the-difference-between-sharding-and-partition



  1. Vytvořte vztah v SQL Server 2017

  2. postgres sloupec X neexistuje

  3. Export a import všech databází MySQL najednou

  4. Příklady TIMESTAMPADD() – MySQL