As Vince said you should save something after any change, for example when you give player money, update money in the database as well.
Nope, thats not recommended. I think he meant to say that variables which don't change frequently should be directly saved or loaded to/from the database and should not have any global variable for itself.