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

Jak MySQL Cluster určí, které datové uzly mají hledat SELECT dotaz?

Au... takhle MySQL Cluster nefunguje.

Ve výchozím nastavení MySQL Cluster rozděluje data na PRIMÁRNÍ KLÍČ. Je však možné použít uživatelem definované rozdělení a rozdělení na část PRIMÁRNÍHO KLÍČE. To je mimořádně užitečné pro seskupení souvisejících dat dohromady a pro zajištění umístění dat v rámci jednoho oddílu. Vzhledem k tomu, že související data jsou poté uchovávána v jednom oddílu, je možné škálovat od 2 do 48 datových uzlů bez obětování výkonu – bude konstantní. Další podrobnosti naleznete na http://dev.mysql.com/doc/refman/5.5/en/partitioning-key.html

Ve výchozím nastavení API vypočítá hash (pomocí algoritmu LH3*, který používá md5) PRIMÁRNÍHO KLÍČE (nebo použité definované části primárního klíče), aby určil, který oddíl má odeslat dotaz. Vypočtený hash je 128 bitů a 64 bitů určuje oddíl a 64 bitů určuje umístění v indexu hash na oddílu. Jako uživatel nemáte přesně přehled o tom, který uzel má data (nebo kdo je bude ukládat), ale prakticky na tom nezáleží.

Pokud jde o původní otázku o distribuci jednoho clusteru MySQL přes 2 cloudy a rozdělení dat. Datové uzly potřebují spolehlivý vzájemný přístup s nízkou latencí, takže byste nechtěli uzly rozšiřovat, pokud nejsou od sebe vzdáleny méně než 50–100 mil.



  1. Přidání identity do existujícího sloupce

  2. SQL Server:DELETE vs TRUNCATE

  3. Jak se mohu připojit k databázi MySQL pomocí Scala?

  4. C# Ekvivalent datových typů SQL Server