0

Much in the same fashion as the following question, our software aims to serve BtoB clients, and as such we would like to provide separate databases for each client, with a core, shared database for initial authentication and redirection to the client-specific database.

I am confused as of how one should establish the different instances; MySQL Workbench 6.3.6 CE build 517 provides two options - create a new connection to a MySQL server or create a new schema (db) under the same server.

Which one would you suggest to ease horizontal scaling and why?

Community
  • 1
  • 1
Philippe Hebert
  • 1,616
  • 2
  • 24
  • 51
  • Can you provide any justification for separate database for each client? Why don't you start with just one database ? – cool Mar 13 '16 at 10:46
  • Isn't that the whole point of my question? I'm asking which one would be better for scaling or not. The thing is that if you have different instances from the get go you won't need to separate them later on. If you have all your database in one process you will be most likely to end up with a vertical scaling model rather than a horizontal model. I would also assume that having lots of clients accessing the same instance could create a bottleneck. – Philippe Hebert Mar 13 '16 at 15:31
  • There's also the added security of having different processes/instance. Let's say my application ends up being SQL Injectable, then if someone does DROP DATABASE * on any one of the instance, I'm losing only one client worth of information compared to _ALL_ client information. – Philippe Hebert Mar 13 '16 at 15:36

0 Answers0