Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sharding bazy danych a partycjonowanie

Partycjonowanie jest bardziej ogólnym terminem dzielenia danych między tabelami lub bazami danych. Dzielenie na fragmenty to jeden specyficzny typ partycjonowania, będący częścią tak zwanego partycjonowania poziomego.

Tutaj replikujesz schemat na (zwykle) wielu wystąpieniach lub serwerach, używając pewnego rodzaju logiki lub identyfikatora, aby wiedzieć, które wystąpienie lub serwer ma szukać danych. Tego rodzaju identyfikator jest często nazywany „kluczem odłamkowym”.

Powszechną logiką bez klucza jest używanie alfabetu do dzielenia danych. A-D to instancja 1, E-G to instancja 2 itd. Dane klientów dobrze się do tego nadają, ale ich rozmiar w różnych instancjach będzie nieco błędny, jeśli partycjonowanie nie uwzględnia faktu, że niektóre litery są bardziej powszechne niż inne.

Inną powszechną techniką jest użycie systemu synchronizacji kluczy lub logiki, która zapewnia unikalne klucze w instancjach.

Dobrze znanym przykładem, który możesz przestudiować, jest to, jak Instagram rozwiązał swoje partycjonowanie na początku (patrz link poniżej). Zaczęli partycjonować na bardzo niewielu serwerach, używając Postgresa do dzielenia danych od samego początku. Myślę, że na tych kilku fizycznych odłamkach było kilka tysięcy odłamków logicznych. Przeczytaj ich niesamowity opis z 2012 roku tutaj:Inżynieria Instagrama – fragmenty i identyfikatory

Zobacz również tutaj:http://www.quora. com/Jaka-różnica-między-sharding-a-partycją



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj tylko rekordy utworzone dzisiaj w laravel

  2. jak importować z MS Excel do MYSQL DB

  3. post zmieniono nazwę pliku z przesyłania do bazy danych

  4. Parametr numer 2 nie jest parametrem OUT

  5. Jak szukać ukośnika (\) w MySQL? i dlaczego ucieczka (\) nie jest wymagana dla gdzie (=), ale dla Like jest wymagana?