Z MySQL, ludzie zwykle robią to, co jest nazywane oparte na aplikacji odłamywanie.
W skrócie, będziesz mieć tę samą bazę danych strukturę na wielu serwerach baz danych. Ale nie będzie zawierał tych samych danych.
Tak na przykład:
Users 1 - 10000: server A
Users 10001 - 20000: server B
Sharding (oczywiście) nie jest techniką tworzenia kopii zapasowych, to znaczy rozpowszechnianie odczytuje i zapisuje w klastrze.
Technikami stosowanymi do odłamu są na przykład MySQL-Proxy. To nie jest nic, co wymyślił HScale, jest to mniej więcej prosty skrypt LUA, który dystrybuuje odczyty i zapisy na różne serwery zaplecza. Na kuźni MySQL powinno być mnóstwo przykładów.
Innym narzędziem (opartym na serwerze proxy MySQL) jest SpockProxy. Całkowicie skrojony na strzępy. Pozbyli się także Lua i pracowali nad różnymi rzeczami, aby uczynić ją szybszą niż proxy. Do tej pory testowałem tylko SpockProxy, ale nigdy nie uruchomiłem go w produkcji.
Oprócz tych pełnomocników, możesz także odstąpić od siebie. Wymagany będzie stół główny, np .:
-------------------
| userA | server1 |
| userB | server2 |
| userC | server1 |
-------------------
Następnie skonstruuj swoje odczyty i zapisze w kierunku serwera. Niezbyt ładne, ale działa. Następnym utrudnieniem byłoby uczynienie go bardziej falt tolarant. Na przykład: , server2
i server3
, każdy powinien być małą grupą.
Kolejnym interesującym podejściem do danych i indeksów partycji na serwerach jest Digg's IDDB.Nie jestem pewien, czy kiedykolwiek wydali swój kod, ale ich wpisy na blogu zawierają szczegółowe informacje na temat tego, co robi.
Daj mi znać, jeśli to pomoże!
Byłoby miło, gdyby ludzie zostawili komentarz, gdy trafią "blisko". IMHO, to pytanie jest więcej niż odpowiednie dla Stackoverlow. – Till