My company develops different web applications for different clients.
For each new client (or important project), we use a new server with a new MySQL database.
This way, an application can access its database only and the database is directly linked with the project (as it is in the same server so basically in the same directories). Until now it has not shown any particular problem.
As we are changing our methods, my colleagues wonder if we could use instead only one database with all projects in it and use some master/slave replication.
Our different databases have some tables in common, but with different data as they belong to their respective apps.
I did some research on the subject :
I find mostly posts that recommend using a database for each application for these reasons :
- Distinct log files and backups for each project
- Better scalability as we can inspect the needs for each database
- Simple to use from application without having to change data or create views, etc.
Most of what I read about this is between 5 and 10 years old so I'm not sure if the disadvantages of the other solution are still relevant.
I struggle to find precise information and advantages about the unique-database solution and the use of Master/Slave replication for this kind of cases.
I'm new to this idea : I understand the concept of master/slave here but I don't have technical knowledge about it.
(Could using a unique database be beneficial ?)
Should we have :
- The database of an app on the same server than the app,
- A single server for all databases, and keep the apps in other hosts ?
Note that we are using MySQL but PostgreSQL is a possible option if we chose to use a single database with different schemas for each app.