Hi Vincent and John,
certainly cluster has a bigger footprint in memory than MyISAM tables. This depends on your database design and I would like you to carefully read the sections on DataMemory and IndexMemory in the manual
http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-db-definition.html. If the data memory is 5 to 6 times bigger than on disk you probably have many (and probably to long) varchars. How did you measure your memory consumption?
The "speed" of cluster depends on the queries, the schema design and the configuration of your cluster. But cluster is easily able to handle thousands of transactions with very low response times of about 5 to 10 ms.
Cluster has been designed to deliver a scalable and highly available database. It offers a shared nothing architecture with minimum fail over times. Data is automatically synchronously replicated and perfectly load balanced. In order to achieve this some measurements had to be taken in cluster internal design. Some of them result in memory overhead. To make use of MySQL Cluster's unbelievable performance and high availability some investments have to be made. You can't expect a car to run 180 miles per hour just because you have 250 horse power and the filled it up with 110 octane kerosene. It is accepted that you will have no luck without e.g. proper transmission.
Make for example sure to have fast node interconnections: you are accessing network not a local disk when retrieving data.
You might also notice that the simplest example set-up of a cluster like described in the manual (http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-config-example.html) already consists of at least three different servers. A single MySQL Server attached to two data nodes (three servers!) might only serve 200 to 1000 transactions per second (or even more or sometimes less depending on hardware, schema, transactions, etc.). But you can increase your throughput almost linearly while maintaining your low answering times with just adding more MySQL Server.
A cluster running only on two servers will definitely not deliver what you'd expect: performance and high availability. Have at least two data nodes installed on two different machines. MySQL Servers should run on additional separate hardware.
But there is probably much more potential to speed up your cluster installation. I almost weekly install cluster based solutions easily surviving node failures, lightning fast in most all cases and scaling out linearly by just adding another MySQL Server.
Cheers,
Bernhard
--
Bernhard Ocklin, Senior Consultant, www.mysql.com
Are you MySQL certified? www.mysql.com/certification