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

MySQL Cluster (NDB) vs MySQL Replication (InnoDB) pro aplikace Rails 3:klady/zápory?

Existuje dobré srovnání InnoDB a MySQL Cluster (ndb) nedávno zveřejněného v dokumentech... stojí za to se podívat:http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-compared.html

Architektura clusteru se skládá z fondu serverů MySQL, ke kterým přistupují aplikace; tyto servery MySQL ve skutečnosti neukládají data clusteru, data jsou rozdělena do skupiny datových uzlů níže. Každý MySQL Server má přístup k datům ve všech datových uzlech. Pokud jeden server MySQL změní část dat, je okamžitě viditelný pro všechny ostatní servery MySQL.

Je zřejmé, že tato architektura velmi usnadňuje škálování databáze. Na rozdíl od shardingu aplikace nepotřebuje vědět, kde jsou data uložena – může pouze načíst rovnováhu mezi všemi dostupnými servery MySQL. Na rozdíl od škálování pomocí replikačního clusteru MySQL vám cluster umožňuje škálovat zápisy stejně dobře jako čtení. Nové datové uzly nebo servery MySQL lze přidat do existujícího Clusteru bez ztráty služby pro aplikaci.

Architektura sdíleného klastru MySQL Cluster znamená, že může poskytovat extrémně vysokou dostupnost (99,999 %+). Pokaždé, když změníte data, jsou synchronně replikována do druhého datového uzlu; pokud jeden datový uzel selže, požadavky aplikací na čtení a zápis jsou automaticky zpracovány záložním datovým uzlem.

Kvůli distribuované povaze MySQL Cluster mohou být některé operace pomalejší (například JOINy, které mají tisíce průběžných výsledků – ačkoli je k dispozici prototypové řešení, které to řeší), ale jiné mohou být velmi rychlé a lze je extrémně dobře škálovat (např. klíč čte a zapisuje). Máte možnost ukládat tabulky (nebo dokonce sloupce) do paměti nebo na disk a výběrem možnosti paměti (se změnami kontrolními body na disku v pozadí) mohou být transakce velmi rychle.

MySQL Cluster může být složitější na nastavení než jeden MySQL server, ale může zabránit tomu, abyste ve své aplikaci museli implementovat sharding nebo rozdělení čtení/zápisu. Houpačky a kruhové objezdy.

Chcete-li získat nejlepší výkon a škálovatelnost z clusteru MySQL, budete možná muset vyladit svou aplikaci (viz dokument white paper ladění výkonu clusteru:http://www.mysql.com/why-mysql/white-papers/mysql_wp_cluster_perfomance.php ). Pokud aplikaci vlastníte, není to obvykle velký problém, ale pokud používáte aplikaci někoho jiného, ​​kterou nemůžete upravit, může to být problém.

Poslední poznámkou je, že nemusí být vše nebo nic – můžete si vybrat, že některé své tabulky uložíte do Clusteru a některé pomocí jiných modulů úložiště, toto je možnost pro jednotlivé tabulky. Můžete také replikovat mezi Clusterem a jinými úložnými moduly (například použít Cluster pro vaši run-time databázi a poté replikovat do InnoDB pro generování komplexních sestav).




  1. Chyba:Nelze vytvořit TypedQuery pro dotaz s více než jedním návratem

  2. Dotaz MySQL kontroluje dvě hodnoty v jednom sloupci

  3. 4 tipy pro spuštění diagnostiky serveru SQL

  4. Oracle sql:aktualizujte, pokud existuje else insert