Should I have one MySQL instance for all our apps, or one instance for each?
Solution 1:
Knowing nothing else, simpler is always better. One instance.
Solution 2:
Agree with others - one instance of mysql, but:
- seperate databases for each app
- seperate user/password for each app
This will make it much simpler to migrate later. However do use innodb rather than c-isam as your storage engine - the latter (IIRC) still only process one request at time.
When you do need to upgrade to multiple servers, then I'd recommend using master-master replication so that each node still serves all the databases rather than splitting it, until you get to about 4 nodes, then start partitioning based on database.