Databases don't kill a system as much as you might think. Indexing (the software can do this) and good design (you should do this) should help minimize the utilization. Then again, if you're expecting to run many simulataneous users, you might want to consider other options. You might want to consider different storage options for different types of data. For structured data that's not accessed too much, you can throw that in any type of database.
I've read that Berkeley DB is one of the fastest DBs out there, but it's also more limited. Perhaps you can arrange your most common data to fit in a Berkeley DB somehow.
Sorry I couldn't be more helpful. Hopefully you can do some research on Berkeley DBs to see if you can use them.
Regarding your object design, don't worry about how everything connects to the DB. Instead, build some kind of data access object that talks to the DB. Should you take the singleton route, this can be a singleton object. Note that having a singleton DB connection can be slower than having multiple connections, because you can only run one query at a time. Something as simple and quick as a login will have to wait until other queries are finished, instead of running in parallel.
|