Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use one large database or use single databases per customer

Tags:

database

Currently I'm working on a on-line webapplication for construction materials. Companies can log in on our website and then they can use the webapp.

From the beginnen the idea was to create a database per customer. But now it's becomming larger and larger (100+) so we have now 100 databases to manage.

We have to run approx. twice a year an update script for db maintanance.

The advantage that I see, is that when a customer wants to quit, we delete their database and than it's finished.

When I want to add new customer, I have to fill the database with approx. 1.000.000 unique records for that specific customer, because every customer have different prices /materials.

For backups I use a MySQL Dump script, that creates a *.sql file per database that I download every day.

What is your opnion and what do you think? One large db or per customer a database?

I'm using MySQL with ASP.NET/C#...

like image 550
Ruutert Avatar asked Feb 12 '26 16:02

Ruutert


1 Answers

I don't want to make a suggestion because there are far too many variables.

I do want to note, however, that my employer has 1000s of deployed databases -- we use one database per customer with replication (2+ databases).

So, the idea is workable. My job isn't related to DB management but I do recall that we do a lot in the way of automation and online tools. Backups and DB management is handled by a team.

Ultimately, you can make the 100+ deployments work but you are going to want to start investing in the development of utility and tools to help automate the backup and/or management of the DBs.

Ideally, nothing (DB Management) should be done by hand. Furthermore, the connection strings should be abstracted away from a given web app deployment.

like image 172
Frank V Avatar answered Feb 15 '26 19:02

Frank V