The number of databases are essential for any social website? I've my tech team focusing on creating a social site but almost all their tables have been in 1 database. I needed to produce separate table sets for user data, temporary tables, etc and thinking maybe have one separate database just for critical data, etc but I'm not a tech person and today sure the salt water evaporates? The website will probably be a nearby reviews website.
The easy answer, of course, is as couple of as you possibly can.
The a little more complicated response is that when your start to push the limits of the server and start to consider multiple servers with master/slave replication your might want your frequent write tables separated out of your rarely write tables that will lower the actual-slave update needs.
Should you begin using seperate databases you may also encounter an along with you backup / restore strategy. For those who have 5 databases and backup all five, what goes on when you really need to revive one of these, would you then have to restore all five?
I'd choose the fewest quantity of databases.
What's the reason that you would like it in various databases?
You can just invest tables in a single database with no problem, despite for instance multiple installations of the free package. In that situation you should use table prefixes.
Unless of course you're creating a really Large website, one database is the best way to proceed (incidentally, have you think about the possible problems that may raise whenever using various databases?).
If you're concerned about performance, you could configure different tablespaces on several storage products to be able to improve timings.
If you're concerned about security, just increase it (better passwords, no direct root login, no port sending, avoid tunneling, etc.)
I'm not a tech person only doing the running analysis however i own the project so I have to oversee the tech team. My reason to possess multiple database is security and gratifaction.
Because this will probably be a brand new startup, there's nothing to take a position into strong security or obtaining the database designed perfect. Plus you will find presently no backup guidelines in position so: 1) I wish to separate critical data like user password/fundamental profile info, then separate out user media (photos they upload on their own profile) and so the user content. Then separate the system content. Current design is to need to layers of tables: Master tables for entire system and module tables for everybody module. 2) Performance: You will find lots of modules being designed which is an information intensive social site with a lot of confirming / analytic being builtin so plenty of read/creates. Maybe easier to distribute load across database based purposely?
Concerning is not much funding hence I wish to understand it properly the very first time with my investment therefore the database can scale &lifier work nicely until revenue is available in to really purchase setting it up right. Ofcourse that may be maybe 6 several weeks away and say millions of customers away too.
Oh &lifier there's intend to add staging/production mode also so seperate or same database?
The main reason you would like to have multiple databases is perfect for scaling-to multiple machines. Poor a "social application" where large volume / high availability is an issue. Should you anticipate the necessity to scale to multiple machines to deal with high volumes then your breakout of tables ought to be individuals that realistically have to stay together.
So, for instance, maybe you need to keep tables associated with a particular area of interest (maybe status updates) together in a single database along with other tables that are based on another area of interest (let us say user's picture libraries) together inside a different database.
You will find logical and gratifaction good reasons to keep tables in separate physical or logical databases.
You will be fine adhering with one database for the time being. Your designers can isolate/seperate application data by utilizing database schema. Dealing with multiple databases can rapidly be a journey through an enormous amount of discomfort and will be prevented unless of course its absolutely crucial.