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

W jaki sposób klaster MySQL określa, które węzły danych mają wyszukiwać zapytanie SELECT?

Ojej... tak nie działa klaster MySQL.

Domyślnie dane partycji MySQL Cluster w PRIMARY KEY. Możliwe jest jednak użycie partycjonowania zdefiniowanego przez użytkownika i partycjonowania na części KLUCZU PODSTAWOWEGO. Jest to niezwykle przydatne przy grupowaniu powiązanych danych i zapewnianiu lokalizacji danych w obrębie jednej partycji. Ponieważ powiązane dane są następnie przechowywane na jednej partycji, możliwe jest skalowanie od 2 do 48 węzłów danych bez poświęcania wydajności — będzie ona stała. Więcej szczegółów na stronie http://dev.mysql.com/doc/refman/5.5/en/partitioning-key.html

Domyślnie interfejs API oblicza skrót (przy użyciu algorytmu LH3*, który używa md5) na kluczu PODSTAWOWYM (lub używanej zdefiniowanej części klucza podstawowego), aby określić, do której partycji należy wysłać zapytanie. Obliczony skrót to 128 bitów, a 64 bity określają partycję, a 64 bity określają lokalizację w indeksie mieszającym na partycji. Jako użytkownik nie masz dokładnego wglądu w węzeł, który posiada dane (lub kto będzie je przechowywał), ale praktycznie nie ma to większego znaczenia.

Jeśli chodzi o pierwotne pytanie dotyczące dystrybucji jednego klastra MySQL w 2 chmurach i partycjonowania danych. Węzły danych potrzebują niezawodnego dostępu do siebie o niskim opóźnieniu, więc nie chcesz rozmieszczać węzłów, chyba że znajdują się one w odległości mniejszej niż 50-100 mil od siebie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump:Nie można wykonać. Nieznana tabela „column_statistics” w schemacie information_schema

  2. Dodaj kolejnego użytkownika do MySQL w Kubernetes

  3. Jak zdobyć listę wspólnych znajomych

  4. wygeneruj klasę enum z tabeli za pomocą JOOQ

  5. Nieznany początkowy indeks zestawu znaków '255' odebrany z serwera