Advertisement

MMORPG database choice

Started by November 19, 2005 01:36 PM
21 comments, last by _winterdyne_ 19 years, 2 months ago
Quote:
Original post by eastcoastsurfer
Is mysql ACID compliant yet? Does it finally support sub queries?

yes.
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
Quote:
Original post by Territe
However given the choice I would go with oracle anyday, we use it on our newest platform and there really is no debate, we have tested tables over 30GB, and even in the highest query situations it has yet to show an ounce of lag. The issue with oracle is the cost.


And maintenance. We have nothing but troubles with our oracle databases at work. If you'd rather spend your time developing a game, instead of maintaining a database, then I'd go with SQL server. SQL Server has been slow on large tables, but I think you'll get by. They claim that the newest version is much better, but the jury's still out IMO. Besides, if you write your SQL code properly, it *should* port very easily to other platforms. Moving the data of course is a different matter entirely...
Advertisement
Quote:
For example, keep all stats as a single binary object and store that


That makes it harder to write queries that find, say, all characters with a stat value over 100. You might want to run such queries on your database because you might be looking for possible exploits.

Sure, you can stick what's basically "files" into the database -- we do that, too. You just have to be careful about your schema, so that you can actually support the queries that you know you want to do on your database. If you're a larger operation, you probably keep one DB back-end for live (production) use, and use an ETL process to get data into a more queriable format in a separate reporting back-end. (Extraction, Translation, Load -- from data warehousing)
enum Bool { True, False, FileNotFound };
Maybe this is a bit OT, but I'm using data files as opposed to databases and it works fine for me so far. Just in case you haven't concidered it, it is a viable option to concider.
_______________________Afr0Games
markr: depends on the industry.

Our custom real-time databases (memory resident) each weight in at several gigs each. With on average 6 per customer and 50+ customers... Then there's the SYBASE side for archiving and static data. (yes that's a lot of memory)

Also UO a rather popular mmorpg supposedly have several terrabytes of data...
Quote:
Original post by hplus0603
Quote:
For example, keep all stats as a single binary object and store that


That makes it harder to write queries that find, say, all characters with a stat value over 100. You might want to run such queries on your database because you might be looking for possible exploits.

Sure, you can stick what's basically "files" into the database -- we do that, too. You just have to be careful about your schema, so that you can actually support the queries that you know you want to do on your database. If you're a larger operation, you probably keep one DB back-end for live (production) use, and use an ETL process to get data into a more queriable format in a separate reporting back-end. (Extraction, Translation, Load -- from data warehousing)



Yep, I do bounds checking when extracting the character from the store. Live data is kept on the server the character is relevant to.
I store a lot of stuff in DB as opposed to files because items are referenced from everywhere - even my 'static' data is (potentially) very dynamic. I need the ability to store relations between tables and very quickly determine what other entities are affected by a change. A RDMS provides this functionality without me having to implement it myself.

Winterdyne Solutions Ltd is recruiting - this thread for details!
Advertisement
AP: We run 64-bit implementations on Solaris. Our DB size increases are done in chunks of 1GB.

Our Real-Time Database (Memory Resident) was wrote in house (it's not relational for speed purposes) and this also runs on Sun boxes.
Quote:
Original post by Promit
I think MS SQL, MySQL, and PostgreSQL are all basically identical unless you're doing heavyweight work -- many GBs of data, complex queries, a sophisticated DB schema, etc.

Oh, and I forgot to mention, Oracle is free now.

OMG, you are my hero for posting this!! I'm so downloading this when I get home from work...
Ditto. I can't believe I missed that. Will definitely evaluate with it.
Winterdyne Solutions Ltd is recruiting - this thread for details!
Quote:
Original post by Promit
Oh, and I forgot to mention, Oracle is free now.


Not free:

Quote:
from the license agreement
License Rights
We grant you a nonexclusive, nontransferable limited license to use the programs only for the purpose of developing a single prototype of your application, and not for any other purpose. If you use the application you develop under this license for any internal data processing or for any commercial or production purposes, or you want to use the programs for any purpose other than as permitted under this agreement, you must contact us, or an Oracle reseller, to obtain the appropriate license. We may audit your use of the programs. Program documentation may accessed online at http://otn.oracle.com/docs.


you can only use the download for a prototype. If you release it commercially you have to pay the big bucks. I'd read that agreement very carefully before you even put your game/app up on a public server.

-me

This topic is closed to new replies.

Advertisement