I am starting to look into different database's for different use cases. I see there is a mysql community server and mysql cluster. What is the difference between the two? Are they both database engines/servers or is one an additional service for the other?
3 Answers
MySQL cluster is a storage engine for MySQL, which distributes and replicates data in an in-memory cluster (NDB data nodes) and can be queried via MySQL servers (SQL nodes).
Where it gets confusing, is that MySQL Cluster also has a native API where you can avoid the MySQL storage engine system and communicate directly to the data nodes with the NDB API, which is kind of NoSQL-like. I'm not aware of any other storage engines that have this ability, and there are many large customers preferring this method of usage.
MySQL Cluster also has it's own release cycle and versioning system, and is currently at version 7.3.
I also got confused when I went to download MySQL Community Edition Database. It has two links. One of them is "MySQL Community Server" and another one is "MySQL Cluster". In non-technical language following are the answers.
Question: Are they both database engines/servers or is one an additional service for the other? Answer: Both are database engines
Question: What is the difference between the two? Answer: The difference between them is that "MySQL Community Server" stores data on single physical location(single computer) but the other one, "MySQL Cluster" stores data on multiple physical location (More than one computer).
Refer to other answers for detailed technical differences.
Hope this helps!
They're basically the same product, but the Cluster version is also shipped with the NDB storage engine to allow database distribution and clustering.
You can find information about and the differences between the InnoDB engine (commonly used with the Community Server) and the NDB engine here:
http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-compared.html
For a list of supported engines by your install, run the SHOW ENGINES command from a MySQL prompt:
mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0,00 sec)