Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I have never dipped my hands in MySQL Cluster and want to know how it can benefit me. When is it best to use it, and does it have performance benefits?

share|improve this question
add comment

2 Answers 2

up vote 4 down vote accepted

MySQL Cluster is designed around 3 core principles:

  • High availability (shared nothing, local and geographic replication, integrated heart-beating, automated failover and self-healing recovery, etc.)

  • Write-scalability and real time performance (auto-sharding, in-memory optimizations, etc)

  • Multiple database interfaces (SQL and NoSQL)

These are discussed in more detail in the following paper (note, registration required): http://mysql.com/why-mysql/white-papers/mysql_wp_scaling_web_databases.php

Adaptive Query Localization is a feature of the current MySQL Cluster 7.2 development release and rapidly improves performance of JOIN operations by pushing them down to the data nodes, thereby significantly reducing network traffic - to address the point Rolando makes above. You can read more about it here: http://dev.mysql.com/tech-resources/articles/mysql-cluster-labs-dev-milestone-release.html

MySQL Cluster is licensed under the GPL and can be downloaded from dev.mysql.com, with on-line help via the forums: forums.mysql.com/list.php?25

share|improve this answer
    
Hey @Mat, thank you for focusing on the positive side of MySQL Cluster. Both pros and cons need to be highlighted. I already did the cons. You did the pros. This way, experiencing the rewards, joys, griefs and anxieties of MySQL Cluster is totally at the discretion of those who decide to implement its usage. Even though it is GPL, the principle still applies : LET THE BUYER BEWARE. +1 for your answer. –  RolandoMySQLDBA Jul 29 '11 at 16:30
    
Hi Rolando - thx for your review. As you point out, every technology has its use cases - some are well suited to MySQL Cluster, some are not. This part of the MySQL documentation compares InnoDB (the default MySQL storage engine) with MySQL Cluster and can help identify what to use when and where: dev.mysql.com/doc/refman/5.1/en/mysql-cluster-compared.html –  Mat Keep Jul 30 '11 at 19:33
add comment

When I wanted to get information about MySQL Cluster, MySQL (before Sun bought it) would send out a brief questionnaire, which I wish I still had. One of the questions asked if your tables had integer keys only.

Although MySQL Cluster is ACID-complaint, it does not provide a suitable storage engine for data with compound keys. In some respects, you have to plan its usage like that of a MongoDB or Cassandra in terms of data layout and sharding.

You also have to consider the most annoying part of MySQL Cluster: Network Communication. NDB Cluster tends to be chatty among servers. Even Gig-E can be brought to its knees if doing range queries or full table scans. You must be disciplined enough to use primary keys and unique keys, especially if your application thrives on such keys.

Unless you adhere to these simple observations, MySQL Cluster will do way more harm than good.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.