Although this areaThis question is rather old, i feel its still important but my Idea of how to keep info and idea uphandle it is as valid as it was asked as it is today.
If you're using a relational database you need to date onreduce the subjectload on it so this idea should help.
I had an idea that you storeStore all public info on a databaselocal DB on each client sidesystem as well as in the servers DB.
Things likeStore all tables with items on the tableclient database. Instead of the client looking to the server when you mouse over that stores allweapon for stats, the weaponsclient just checks the local database for stats should be fine. The server has its own database for pulling stats when calculating and just forwards damage and health remaining to have stored on the clients computer.
Worst case with this idea is that everyone can see the stats to all weapons if a player looks at say item ID 9000, instead of it doing a querythey manage to get into the server to checkclients database. it doesn't matter though cause even if they change the DB for that itemvalues, it checks a local DB for the stats. This reduces bandwidthdatabase values on the server needs as well as reduceare what does the amount of queries your DB will be taking oncalculating in the game.