Per la vasta maggioranza di app, non importa molto dove si inserisce il database perché il server Web non sarà mai spinto al punto in cui la sua performance di database (o viceversa).
Suggerirei di mantenerlo semplice e di mantenere il db sul server web a meno che tu non sappia già che stai per affrontare un sacco di traffico. È sempre possibile spostare il db su un secondo server (o avviare la replica su un server aggiuntivo) secondo necessità.
Una disposizione particolare che uso è quella di avere il db principale sul server web, ma di avere una copia replicata su un secondo server. I report e le query intensive / non in tempo reale simili vengono eseguite rispetto alla copia replicata, ma tutto il resto viene eseguito rispetto al db principale. Ciò impedisce alle query "fuori controllo" eseguite nei report di influire sul server principale. Ma ancora una volta, questo davvero aiuta quando c'è abbastanza traffico in primo luogo per renderlo un problema.