2009-12-30 5 views
9

Je veux mettre en œuvre le cluster NDB pour MySQL Cluster 6. Je veux le faire pour une très grande structure de données avec un minimum de 2 millions d'enregistrements.Quelles sont les limites de l'implémentation de MySQL NDB Cluster?

Je veux savoir s'il y a des limites à l'implémentation du cluster NDB. Par exemple, la taille de la RAM, le nombre de bases de données ou la taille de la base de données pour le cluster NDB.

Répondre

15

2 millions de bases de données? Je suppose que vous vouliez dire "rangées".

Quoi qu'il en soit, en ce qui concerne les limitations: l'une des choses les plus importantes à garder à l'esprit est que NDB/MySQL Cluster n'est pas une base de données à usage général. Plus particulièrement, les opérations de jointure, mais aussi les sous-requêtes et les opérations de plage (requêtes comme: commandes créées il y a une semaine) peuvent être considérablement plus lentes que ce à quoi vous pourriez vous attendre. Cela est dû en partie au fait que les données sont réparties sur plusieurs nœuds. Bien que certaines améliorations aient été apportées, les performances de Join peuvent être très décevantes. D'un autre côté, si vous avez besoin de gérer de nombreuses (de préférence petites) transactions simultanées (généralement des mises à jour/insertions/suppressions de lignes simples par clé primaire) et de garder toutes vos données en mémoire, alors peut être une solution très évolutive et performante.

Vous devriez vous demander pourquoi vous voulez un cluster. Si vous voulez simplement votre base de données ordinaire que vous avez maintenant, sauf avec 99,999% de disponibilité supplémentaire, alors vous pourriez être déçu. Il est certain que le cluster MySQL peut vous fournir une disponibilité et une disponibilité exceptionnelles, mais la charge de travail de votre application n'est peut-être pas très bien adaptée aux besoins du cluster. De plus, vous pourrez peut-être utiliser une autre solution à haute disponibilité pour augmenter la disponibilité de votre base de données traditionnelle.

BTW - Voici une liste des limitations par la doc: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html

Mais quoi que vous fassiez, essayer cluster, voir si son bon pour vous. Le cluster MySQL n'est pas "MySQL + 5". Vous découvrirez quand vous essayez.

1

Le cluster NDB est livré avec deux types d'options de stockage.

1.En mémoire de stockage. 2.Dispositif de stockage. Le NDB introduit comme stockage de données en mémoire et dans la version 7.4 (MYSQL 5.6) a commencé à prendre en charge le stockage sur disque. La version actuelle 7.5 (MySQL 5.7) prend en charge le stockage sur disque et dans ce cas il n'y aura pas de contraintes de taille car les données vont résider sur le disque et la limite dépendra de l'espace de stockage sur disque disponible avec vous.
configurations de stockage sur disque - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html

dans le stockage de la mémoire dans le cluster NDB est également tout à fait mature et vous pouvez définir l'utilisation de la mémoire dans le noeud de gestion de fichiers config.ini. exemple - DataMemory = 3072M IndexMemory = 384M

dans une table moyenne (dépendent des données stockées dans les colonnes) de la taille db totale doit être inférieure à 1 Go qui peut facilement être configuré. Remarque: dans ma propre implémentation, j'ai été confronté à un problème de performances car les performances du NDB se dégradent avec l'augmentation du nombre de lignes dans le tableau. En cas de charge concurrente élevée, la lecture se dégrade avec le nombre de lignes croissantes. Assurez-vous de ne pas effectuer une analyse de table complète et de fournir un prédicat de clause where suffisant. Pour des performances correctes, définissez correctement l'index secondaire selon votre modèle de requête. La définition de l'index secondaire augmentera à nouveau la consommation de mémoire. Par conséquent, planifiez votre modèle de requête et vos ressources mémoire en conséquence.

Questions connexes