views:

24

answers:

1

I've inherited a rather large and somewhat messy codebase, and have been tasked with making it faster, less noodly and generally better.

Currently we use one big database to hold all data for all aspects of the site. As we need to plan for significant growth in the future, I'm considering splitting tables relevant to specific sections of the site into different databases, so if/when one gets too large for one server I can more easily migrate some user data to different mysql servers while retaining overall integrity.

I would still need to use joins on some tables across the new databases.

Is this a normal thing to do?

Would I incur a performance hit because of this?

+1  A: 

If you're concerned with data volumes, then you're probably better off maintaining a single database and just ensuring that your server has adequate disk space/memory. If you're concerned with accesses/second, then look at running multiple copies of the database on separate servers for load balancing, using master-master replication to keep them synchronised.

Mark Baker
Great answer, thanks :)
Michael Robinson