Reply inline
Heikki Tuuri wrote:[color=blue]
> Agelmar,
>
> "Agelmar" <ifetteNOSPAM@comcast.net> kirjoitti viestissä
> news:bun74i$j9ijb$1@ID-30799.news.uni-berlin.de...[color=green]
>> kaptain kernel wrote:[color=darkred]
>>> MBS wrote:[/color]
>> <snip>[color=darkred]
>>> all standard mysql_query stuff[/color]
>>
>> I don't know how you can just flat out recommend MySQL for the
>> project. Yes, MySQL is loveable open-source free blah blah blah, but
>> the fact remains that compared to its commercial counterparts
>> (Oracle, DB2, SQL Server) it is still quite poor. It's query
>> optimizer sucks, to be blunt, it doesn't support all the features of
>> SQL 99 (correlated subqueries,[/color]
>
> MySQL-4.1 supports correlated subqueries:
>
http://www.mysql.com/doc/en/Correlated_subqueries.html[/color]
MySQL 4.1 is still alpha release, not production. Hence I would not
recommend it to any of my clients. I would not hesitate recommending MySQL
4.0 to my clients (or 3.23 if that's what their provider is on), but I do
not generally recommend alpha releases...
[color=blue][color=green]
>> full transaction
>> support etc. [yeah, the InnoDB tables offer full ACID compliance,
>> but as far as using MySQL in a distributed DBMS with transaction
>> management... forget it.])[/color]
>
> InnoDB tables in MySQL offer full transaction support, though not the
> 2-phase commit required for distributed transactions. The demand for a
> 2-phase commit has been so low that we have delayed its
> implementation.
>[color=green]
>> There's no stored procedures (a HUGE advantage in commerical DBMSs),[/color]
>
> MySQL-5.0 has stored procedures:
>
http://www.mysql.com/downloads/mysql-5.0.html.[/color]
Development tree. Definitely not production release...
[color=blue][color=green]
>> no triggers, no views (another very important part of SQL), etc. If
>> this is for a small company that's going to be low-volume, then
>> yeah, MySQL will probably work. If this is going to be a high-volume
>> high-traffic mission critical type thing, however, I would
>> definitely not recommend MySQL.[/color]
>
> Why do Yahoo! Finance and Slashdot then use MySQL for a high-volume
> site?
http://www.innodb.com/userstories.php[/color]
With all due respect, Yahoo! Finance and ./ are running relatively simple
queries. I doubt they're doing joins across 10 tables, most of it is just a
simple lookup on an articleID primary key, and I doubt they have any need of
transactions for the majority of the queries. Don't get me wrong, I love
MySQL for simple things / low to medium volume things, but there's a reason
that Oracle Database 10g Enterprise Edition and Microsoft SQL Server 2000
Enterprise Edition 64-bit (running on Windows Server 2003 Datacenter Edition
64-bit) hold the top scores on TPC-C. And TCP-W, which is a benchmark that
matches well with MySQL's typical use, is absolutely dominatd by MS SQL
Server 2000.
[color=blue][color=green]
>> It's
>> just not up to the job. So before you just go and say "Yeah, MySQL",
>> make sure you have all the information needed to make that decision.
>> We clearly do not, as the OP gave no information about the project
>> scale...
>>
>> (and don't ask for benchmarks, MySQL can't run the standard
>> benchmarks (TPC) because they test transactions.[/color]
>
> MySQL/InnoDB can well run TPC-C, which tests transactions. TPC-H does
> not test transactions.[/color]
I stand corrected.
[color=blue]
> See also
http://www.eweek.com/article2/0,4149,293,00.asp, which tested
> transactions. MySQL beat SQL Server, DB2, and Sybase.
>[color=green]
>> Even if it could, it would perform poorly as
>> query optimization is a huge part of TPC,[/color]
>
> Query optimization is not a big part of TPC-C, which is intended to
> test transactions.[/color]
Hmm... TPC-C was based on a more complex database with multiple transaction
types, was it not? While not specifically testing the query optimizer, I'd
imagine that it would still have a large effect on the result... but I could
be wrong, and will haev to look into that.
[color=blue][color=green]
>> as are joins, parallel operations,
>> distributed operations etc. The benchmarks done by MySQL are
>> extremely minimalist, and their comparisons all are run against old
>> versions of Oracle, SQL Server etc, and don't test the query
>> optimizer, or perform any complex joins etc.)[/color]
>
> The eWEEK benchmark was not conducted by MySQL AB.[/color]
Even so, the one referenced is testing old versions of other databases on
obsolete operating systems (SQL Server 7 on NT4 etc)
[color=blue]
> Best regards,
>
> Heikki Tuuri
> Innobase Oy
>
http://www.innodb.com
> Foreign keys, transactions, and row level locking for MySQL
> InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up
> MyISAM tables[/color]