I am working on a database that is relatively small. It has a total of 67 tables, with a little over a million records. It is about 254 MB. The application that works with it has been running for about 5 years and the amount of usage has doubled each year. This year we are projected to triple which will just almost double the database in size one season. My questions is, Is it a bad idea to split the database up into multiple database. Say we have 300 clients, it would then make 300 individual databases containing the 67 tables but only data pertaining to that client. There isn't much of a reason for the data to be together besides for internal statistics which can be performed on a different server. We shouldn't become larger than 10,000 clients in its lifetime.
The problems I see which this setup is when we need to make changes to the "master database" schema it would need to replicate the change throughout all of the "slave databases"
Also replication would be a challenge when a new client is added.
The application on the code level is pretty much set up for this type of setup.
Is there anything I am missing? Is this a terrible idea?
The database was created in haste (not by me) with no thought of future in mind, and now it is my responsibility.
There is plenty to be done as far as normalization, field type auditing, sql optimization, indexing, and server tuning. Any Feedback would be greatly appreciated.