Re: Which Database (MySQL, Oracle, mSQL, Protgress etc.)

From: Gregory Travis <greg_at_sherrill.kiva.net>
Date: 1998/02/19
Message-ID: <6cgj81$agb$1_at_sherrill.kiva.net>#1/1


In article <34EBC3BE.5525800A_at_cornell.edu>, Howard Yen <hty1_at_cornell.edu> wrote:
> I need to use a database for a web site that implements stock trading.
>We need to
>be able to support 500,000+ users where each user will have his/her
>account along with his/her portfolio, transaction history, etc. the
>database needs to be access over the web.
>
>I heard about MySQL is it any good? how well does it compare to Oracle
>or Sybase.
>

MySQL ships with a substantial benchmark suite. The suite is taylored so that it can be run against a number of merchant databases, including Oracle and Sybase.

The suite includes the Wisconsin benchmark as well as some others. It also contains results from a number of other RDBMSs pitted against MySQL on a number of platforms. The compared databases include empress, PostGres, Solid, and something they call "Oraxle." I assume, but do not know, that calling Oracle "Oraxle" gets them around legal benchmark restrictions.

The published comparisons, included in the suite, make MySQL look pretty good. However, I would suggest you simply obtain them (the suites) and run your own comparison tests. Your cost is virtually nothing to do so.

So, I suggest you download a copy and run it against the competition. The benchmark itself (sans MySQL) is available as an RPM from RedHat. Look for mysql-bench-*.rpm _at_ www.redhat.com or the MySQL web site at www.tcx.se.

As a (former?) Sybase user, I would say that MySQL's main drawback is its lack of subquery capability. They do have language extensions that help with many of the problem cases though (inserting only those rows from an "update" table that aren't already in the destination table for example).

It also suffers from true "network" bulk-loading and bulk extract capability. For a fast bulk load/unload you must first ship your flat files to or from the MySQL server machine.

Finally, I find its data-dictionary access methods to be poor. System meta data (for instance table and column lists) is not itself stored in relational tables. It is accessed via special language ("show tables"). There is a loss of flexibility as a result (i.e. it's difficult to do something like: select name from sysobjects where name like "Merrill_Lynch%")

On the other hand, it is a full SQL client/server database with full user level security, table locking, etc. It's multithreaded and performs well under load as our Web server "backoffice" MySQL, like Sybase, supports the concept of multiple databases. Shell-script, Perl, C, and ODBC interfaces are provided.

It's also snappier than a band of enraged weasles. It redefines "sub-second response time" for small databases at least.

greg

p.s. We've been running against a "largeish" MySQL database (couple hundred meg), using Microsoft Access on Windows 95 and Windows NT platforms, using the latest free MySQL ODBC driver. No complaints so far.

p.p.s Depending on how you use it, you may be legally or morally obligated to pay. Check out the restrictions on commercial use as well as the support costs at the MySQL web page. I think you will find the price reasonable :-) Received on Thu Feb 19 1998 - 00:00:00 CET

Original text of this message