MySQL InnoDB or MySQL NDB Cluster which one to use

MySQLmysql-clusteroptimizationperformancesharding

We have an application with 8000 users accessing in parallel(max). We are trying to bring in horizontal scaling. I came across MySQL NDB cluster. Should I go with it? Just for auto sharding and other features if I go with it, will it impact performance?

Note:

  1. Most of the tables in our database has foreign key relationship.
  2. It is a B2B application.
  3. This is one of the deployments.
  4. The db size is 900 MB.
  5. As customers grow the size is expected to grow.
  6. Both outer as well as inner Joins are used frequently.
  7. Host machine is Windows Server 2012
  8. The present 8000 user count is expected to grow to 100000 within 2 weeks.
  9. Queries per second with 8000 users = 110.086.

If not NDB Cluster, then what is the best way to bring in horizontal scaling? with less pain like auto sharding, auto replication,…etc.

Best Answer

NDB is more complex to set up, but may provide a faster way to get to 13K qps sharded across multiple machines.