Oracle vs MySql vs MSSql

Started by
24 comments, last by dt 21 years, 7 months ago
If you link to the MySQL server, this includes using it over the network, then your whole project becomes GPL under the terms of the license. This is explained in the online documentation. You can buy a non-GPL commercial license because MySQL is duel licensed.
Martin Piper
Advertisement
You could also just use PostgreSQL which is completely free of charge?
*c++ = true;
quote:Original post by fnagaton
If you link to the MySQL server, this includes using it over the network, then your whole project becomes GPL under the terms of the license. This is explained in the online documentation. You can buy a non-GPL commercial license because MySQL is duel licensed.


You only have to release your code under the GPL if you distribute your program. Since you probably won''t distribute the server side of your game, you don''t need to release the source either.

Of course, releasing the source under the GPL would be a nice thing anyway, but it''s not required.

Hope this helps.
quote:Original post by smanches
I would like to clarify something between MS-SQL and Oracle.

MS-SQL stores both floats and ints in their native format both in memory and on the hard drive. Stings are stored in either 256 byte blocks or 4096 bye blocks, depending on how much space you need.


I thought SQLServer has a default 2K blocksize and recommends it although it''s not the most efficient ?

quote:
Oracle on the other hand stores both floats and ints in a proprietary 21 byte format. While 21 byte precision is needed for banking and other financial applications, it is a waste of both space and processing power for our games.


Storage, yes if you run on a 4 GB disk. Why bother discussing 21 byte numbers when you could attack Oracle''s need for a 100 MB SYSTEM, 50 MB RBS, 50 MB TEMP and 3x4 MB redo log files ? Even when a 20 MB database you''re talking about 250 MB minimum storage.

quote:
Strings are stored in a block that can be as large as 4MB. While this makes the DB very flexible, it is a waste when most of our strings are less than 256 bytes. The overhead to handle the larger blocks is wasted again.


This is totally untrue. A string is a varchar2, limited at 2000 in Oracle 7 and 4000 in Oracle 8 but it takes up the space that is actually used. So a table with rows that have 10 varchar2(2000) fields which are only used for 10-byte strings will still fill 40 rows inside a single 4K data block.

quote:
Although Oracle has features that make it a great business DB, those features are useless and hinder when it comes to MMP games. MS-SQL, MySQL, and PostgreseSQL will beat it every time.


In single user speed yes, but how about multiuser functionality ? Oracle has row locks, other databases just lock the whole block. If you have an 8K blocksize and 10 rows in each block, the others will lock the entire block and cause processes that need a row that is not being updated to lock, while Oracle provides the before-committing data through the rollback tablespaces, never blocking a process unless it needs the exact same row.

quote:
When selecting a DB, you also have to consider the solutions for backing it up. Our games require snapshots of the database, otherwise someone could find a dup bug and exploit it. Not many DBs allow snapshots or even online backups. Something to think about.


Actually this is where Oracle excels, online and offline backups, with an option to do a full database export while the database is online, for restoring single tables easily.

quote:Original post by fnagaton
If you link to the MySQL server, this includes using it over the network, then your whole project becomes GPL under the terms of the license. This is explained in the online documentation. You can buy a non-GPL commercial license because MySQL is duel licensed.


This would disqualify MySQL for anything serious, except hobbyists. Are you sure ? How about websites ? Do they have to disclose all of their PHP source code when they use MySQL ?

SQL databases are an established field. It''s nostalgic to read about Oracle 1,2,3 etc, in the PDP11 or VAX era when they ran in 64 kbyte for processes and 64 kbyte memory for data, and how they developed with read consistency etc. Oracle 5 and 6 were professional in the late 80''s and Oracle 7 in 1993 with added PL/SQL is like the Oracle we know now. It''s a shame to see products like MySQL now at a level of where Oracle was in 1985 (no transactions, no read consistency, no row locking), even though so many people work on it.
If you use MySQL for commercial purposes, you have to pay..
If you use PostgreSQL for commercial purposes, you dont have to pay.

It can be put so simple, so its up to you want you want
*c++ = true;

This topic is closed to new replies.

Advertisement