Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

MySQL Beats Commercial Databases in Labs Test

CowboyNeal posted more than 8 years ago | from the dark-horses dept.

Databases 419

An anonymous reader writes "Many of the big players now offer free or 'light' versions of their databases, some would call them crippleware. Builder AU compared databases from Oracle, IBM, Microsoft and MySQL, and the open source offering came out on top."

cancel ×

419 comments

Sorry! There are no comments related to the filter you selected.

Isn't this an EULA violation? (5, Insightful)

Anonymous Coward | more than 8 years ago | (#14324355)

I thought the reason MySQL don't post their own comparisons is because the EULAs of Oracle etc. specifically forbid public posting of benchmark results?

Maybe not in Australia (5, Interesting)

ls -la (937805) | more than 8 years ago | (#14324410)

I personally believe that sort of condition in a EULA is unenforcable (even assuming the EULA proper is enforcable - which I don't believe either), as it is anticompetitive. Either way, the test was done by an Australian company, and that could lend a legal hand by setting up international roadblocks to EULA enforcement.

Re:Maybe not in Australia (5, Informative)

Red Alastor (742410) | more than 8 years ago | (#14324736)

IIRC, EULAs are considered void in Australia because it's a contract occuring after the monetary transaction. After you paid, there is no way additional conditions can be added.

That's how it should be everywhere.

Re:Isn't this an EULA violation? (3, Insightful)

ocelotbob (173602) | more than 8 years ago | (#14324545)

The eulas mention performance benchmarks. This article dealt more with feature sets and price/performance questions. No benchmark numbers here, so the EULA means nothing.

Re:Isn't this an EULA violation? (5, Insightful)

AKAImBatman (238306) | more than 8 years ago | (#14324570)

Even if the EULA applied here (which it doesn't, this isn't benchmarks), this is a lame "comparison". What they do is take the crippled versions of $$$ commercial databases that are
"free" for development or personal use, and then compare them against only ONE OSS database. Would you like to guess which OSS database that is?

The entire story feels trumped up to appeal to MySQL fans.

Crippled Versions (5, Informative)

Anonymous Coward | more than 8 years ago | (#14324593)

Actually, even the crippled versions of DB2, Oracle, and MSSQL still have the underpinings for advanced features that MySQL doesn't support. From real replication to actual performance monitoring (all three of the big guys provide detailed hooks into the guts of the DB) to support for multiple filegroups and indexes and databases spread across filegroups, the big DB's have features that are important but impact performance.

SHOOT!! you want to see MySQL get its bum kicked on performance? Run a test on a filesystem against MySQL.

Comparing performance among databases is only meaningful if all of the candidates have the features of which you need. MySQL has come a long way, and I use it in production every day, but this is kind of a silly comparison. The free versions of the big DB's are meant to provide an easy migration path to more feature-complete versions; if you use Sequel Server Express and want to upgrade to something that that supports clustering and log shipping, you may your money and get your features. With MySQL, if you outgrow it, you either need to start writing code, migrating to something else, or sitting on your hands waiting for it to get there.

Recap, for those who won't RTFC and want to slag me: I like MySQL. I use it for mission critical purposes in production environments. However, comparing a simpler product's performance to (crippled versions of) more robust products is silly.

Cheers
-AC

Re:Crippled Versions (0)

Anonymous Coward | more than 8 years ago | (#14324661)

Did you see performance gains with MySQL, over, say Postgre? I have been quite surprised.

Re:Crippled Versions (0)

Anonymous Coward | more than 8 years ago | (#14324738)

God how I hate the term mission critical.

This isn't directed at you. It is directed at fucking stupid market-speak that been injected into everything.

I personally don't know what you mean by mission critical. It could well fit the term. But, I always see it throw about to mean something when 99% of the time it means a e-commerce site, or banking, or some other stupid thing that people might care about, but it isn't going to kill anyone.

If it is nothing more than selling something on the web, fucking say so.

BTW, mission critical to me starts with the possiblity of the loss of life, and ends with the Earth going poof. If it doesn't fall in that range, BFD.

Correctness isn't negotiable (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#14324364)

Sorry, but when MySQL developers tell me things like "count (*) is supposed to give you an estimate", I give up on using MySQL for anything remotely important. It might be fast, it migh beat everything else in benchmarks, but that doesn't mean it does what it's supposed to.

Re:Correctness isn't negotiable (2)

plastic.person (776892) | more than 8 years ago | (#14324399)

Can you elaborate on this please? I used MySql for a minor windows app. It uses a database with about 4 tables and is in 3rd normal form. I chose MySql as a free alternative to M$ Sql server for this simple database only.

Are you saying it gives "estimates" for some queries?!

Re:Correctness isn't negotiable (1, Informative)

Anonymous Coward | more than 8 years ago | (#14324445)

I quoth from the MySQL reference manual:

MySQL solves this by counting inserts and maintaining this in a separate segment in each BDB table. If you don't do a lot of DELETE or ROLLBACK:s this number should be accurate enough for the MySQL optimizer, but as MySQL only store the number on close, it may be wrong if MySQL dies unexpectedly. It should not be fatal even if this number is not 100 % correct.

Re:Correctness isn't negotiable (3, Informative)

irc.goatse.cx troll (593289) | more than 8 years ago | (#14324455)

Not the original poster and I know nothing of what he was refering to, but if you're doing a minor app, I suggest SQLite -- a fully standalone SQL implentation. As in, you specify a database.db file and can do all the sql fun you want in it, but never have to deal with telling the user to set up mysql + authentication + etc, which is a big hassle when all you want sql for is your own data manipulation.

Pretty fast(I never benched it, but its never been an issue), very portable, works in all major languages, overall a very nice tool to have.

Re:Correctness isn't negotiable (0)

Anonymous Coward | more than 8 years ago | (#14324459)

Uh? What are you talking about? COUNT(*) has never given estimates in MySQL. That's why it's so friggen slow with InnoDB...

Re:Correctness isn't negotiable (0)

1000101 (584896) | more than 8 years ago | (#14324465)

When I read your comment, I thought you were joking (I don't follow the MySQL scene at all). A quick google pulled up this [mysql.com] link and sure enough, what you posted is true. The worst part about this is that the status is 'Not a bug'. Huh? Even if this is over a year old, and even if this isn't in the current release, and even if anything, how could anyone think this isn't a bug?

Re:Correctness isn't negotiable (5, Informative)

Guppy06 (410832) | more than 8 years ago | (#14324486)

Both you and the parent aren't reading what they wrote. SELECT COUNT (*) is accurate, it was SHOW TABLE STATUS that gives the estimate (as it should, IMO).

Re:Correctness isn't negotiable (4, Informative)

aiken_d (127097) | more than 8 years ago | (#14324531)

Parent is quite right. Count(*) is expensive, especially on big tables, so it's handy to have a quicker way that's not as accurate. MSSQL has it, too:
select rows from sysindexes where [id]=object_id('tablename') and indid2 ...basically, you're querying the table that the query optimizer uses, asking for how many rows it thinks there are in the primary key.

Nothing wrong with that not being accurate. It's much faster than counting every row, and if all you care about is whether there are less than 1,000,000 rows or something, it's fine. If you care about exact numbers, use count(*), which IS accurate on MySQL.

-b

Re:Correctness isn't negotiable (1, Insightful)

Anonymous Coward | more than 8 years ago | (#14324629)

this is similar to table statistics in the oracle database -- updated when statistics are rebuilt (automatic or manual), and only accurate as of that moment, though much quicker to query if you keep your statistics fairly up to date.

Re:Correctness isn't negotiable (2, Informative)

Anonymous Coward | more than 8 years ago | (#14324487)

Read the bug report again.

It states that SHOW TABLE STATUS differs from SELECT COUNT(*) because SHOW TABLE STATUS guesses.

SHOW TABLE STATUS is just a misc admin command.

Re:Correctness isn't negotiable (5, Informative)

Chmarr (18662) | more than 8 years ago | (#14324482)

Actually, it's quite true, and if you look at what's actually going on behind the scenes inside the database, it makes sense.

If there's nothing going on in the database, then the 'summary' value that MySQL keeps is probably spot on accurate. But, if there's lots of simultaneous inserts and deletes, then it's really going to be very approximate. Until things are all flushed, the summary may include all the inserts and none of the deletes, or vice versa. If you wanted to make the summary information accurate, then you'd have to establish locks and the like around that summary value, and THAT will slow the database down. As it stands, inserts and deletes can be executed with ZERO regard to each other.

Postgresql has a similar problem, except instead of offering a summary value and informed that it's an estimate, whenever you do a count(*) it actually scans the entire table file looking for 'valid' rows. Ie, count(*) is not instantaneous. I think they were going to address this issue in a later release (or perhaps it's in 8.1 already), but it's NOT a simple thing. However, if you wanted instant answers in Postgresql NOW, you can do it by setting up a trigger on insert and delete, and maintaining your own summaries. This is a performance hit, of course... but you'd get the same, or a similar hit, if the database was maintaining for you.

What the 'big guys' do, I don't know. But... don't knock MySQL for doing something weird :)

Postgresql, for comparison, will give you an 'accurate' value, but it actually has to create rows: it can't rely on summary information.

Re:Correctness isn't negotiable (1)

Fulcrum of Evil (560260) | more than 8 years ago | (#14324540)

Until things are all flushed, the summary may include all the inserts and none of the deletes, or vice versa. If you wanted to make the summary information accurate, then you'd have to establish locks and the like around that summary value, and THAT will slow the database down. As it stands, inserts and deletes can be executed with ZERO regard to each other.

And that's exactly what you'd do if you needed to depend on the result. All the subsequent inserts and deletes are irrelevant, as they lie outside the transaction context.

Postgresql has a similar problem, except instead of offering a summary value and informed that it's an estimate, whenever you do a count(*) it actually scans the entire table file looking for 'valid' rows.>

Doesn't Oracle do that as well? Until you do a count, it only has an estimate of the table's size.

Re:Correctness isn't negotiable (1)

GoofyBoy (44399) | more than 8 years ago | (#14324543)

This sort of technical reason is why MySQL is still considered toy in my mind.

Just because something is "hard" doesn't mean that its acceptable to not do.

It would be more acceptable to leave out COUNT(*) functionality than to do it wrong. (Yes, if it gives an number other than the number of rows committed to a table it is wrong. "Weird" is what you call LISP.)

Define "rows in table" before bashing (0)

Anonymous Coward | more than 8 years ago | (#14324523)

When rows are constantly being added and deleted, how do you define the row count at any one instant in time?

At that one moment in time, you can't look at the entire table and count the rows - that takes a finite and measurable amount of time. And unless you lock the entire table while you're doing that count, rows that you say are in your count can be deleted, or rows added to places in the table you've already "looked at".

So, Oracle et al have to do something similar - lock the table, count, and unlock. Or they're just giving an "estimate" also.

Re:Correctness isn't negotiable (4, Informative)

jtcm (452335) | more than 8 years ago | (#14324539)

Sorry, but when MySQL developers tell me things like "count (*) is supposed to give you an estimate"

To be fair to MySQL, that's only for tables of type InnoDB. MyISAM and other storage engines do return an accurate count. From here [mysql.com] :

InnoDB does not keep an internal count of rows in a table. (This would actually be somewhat complicated because of multi-versioning.) To process a SELECT COUNT(*) FROM t statement, InnoDB must scan an index of the table, which takes some time if the index is not entirely in the buffer pool. To get a fast count, you have to use a counter table you create yourself and let your application update it according to the inserts and deletes it does. If your table does not change often, using the MySQL query cache is a good solution. SHOW TABLE STATUS also can be used if an approximate row count is sufficient.

It should be noted, though, that you have to use InnoDB tables for all those "modern" database features like transactional support* and foreign key constraints.

It may be a bit of a bother, but it's not that hard to create the "counter table" for whatever it is you need to count. All the major DBs have something that's a pain in the ass...at least with MySQL you didn't have to pay for the pain.

*BDB and NDB Cluster are apparently transaction safe as well, but I have no experience with them; and for whatever reason, they don't seem to be popularly used.

Re:Correctness isn't negotiable (3, Insightful)

SadButTrue (848439) | more than 8 years ago | (#14324559)

I have a sneaking suspicion that you don't use heavily loaded databases often.

count(*) against a table that is under heavy load and you get:
1) the count when you issued the command, via a lock (table) and scan
2) a secondary table/counter that gets updated automagicaly with each insert/delete commit

mysql chooses number 2. why? Well by the time you can do anything with the results, the lock will be gone. The table will no longer be in the state it was when you asked. Good for you, you just wasted DB cycles because you want 'accurate' data.

Re:Correctness isn't negotiable (4, Insightful)

GoofyBoy (44399) | more than 8 years ago | (#14324595)

>The table will no longer be in the state it was when you asked.

Yes, everyone who ever uses a database should know this already. Thats the whole purpose of transactions and consistancy.

>Good for you, you just wasted DB cycles because you want 'accurate' data.

vs. using DB cycles for inaccurate data?

"Yes the result is wrong but look how many cycles we saved!"

Cray (4, Funny)

jbolden (176878) | more than 8 years ago | (#14324632)

Seymour Cray built a very succesful computer company on the idea of getting a wrong answer quickly.

Re:Correctness isn't negotiable (0, Troll)

dbucowboy (891058) | more than 8 years ago | (#14324623)

What crackhead MySQL developers have you been talking to?

Ah come on. (1)

WindBourne (631190) | more than 8 years ago | (#14324671)

Have you not ever ran Excell? Closeness works fine for 90% of the country. And the other 15% can run whatever.

And where is Postgres? (0)

Anonymous Coward | more than 8 years ago | (#14324365)

Nowhere.

I like MySQL, but... (4, Insightful)

SanityInAnarchy (655584) | more than 8 years ago | (#14324370)

Is it really fair to compare an open-source project, designed to compete with for-pay commercial products, with crippled versions of said commercial products?

Of course, I don't really care what the answer to that is -- either way, I win. Either commercial DB vendors really are releasing heavily crippled versions (bad for them), or MySQL really is the best DB out there (good for it).

And what about postgres?

Re:I like MySQL, but... (3, Insightful)

east coast (590680) | more than 8 years ago | (#14324401)

Either commercial DB vendors really are releasing heavily crippled versions (bad for them)

In what way is that bad for them? Let's face facts, by the time you're using a DB that requires some serious power it probably means you're making money with it. That's the idea behind writing enterprise level software: to make cash. These lesser "crippled" version are goodwill as I see it, and mostly for students or armature enthusiasts.

By the time you're making money from technology the user should be willing to ante up a few shekels to keep the game going instead of being cheap and running down the market.

It makes them look bad (2, Informative)

olddotter (638430) | more than 8 years ago | (#14324469)

Thats how it is bad for them. The free versions of the software are basiclly demos. If the demo doesn't work well who is likely to pony up and buy the main product?

BTW, from what I read of the article it doesn't look like they used the free version of Oracle. It listed a unlimited cpu lic. fee of $19K.

I was impressed with some of the features of MySQL. Since I looked at it years ago it looks like it has come a long way. However I now work at a big company with a site lic. for Oracle, its unlikely I'll use it professionally.

Re:I like MySQL, but... (1)

afidel (530433) | more than 8 years ago | (#14324547)

I don't know what world you live in but MSDE is the foundation to WAY more products than I care to think about. Of course most of those products are targeted at mid to small companies so the performance will never really matter, but it's interesting none the less to see how the free, open stuff compares to what you can get gratis from the commercial houses.

Re:I like MySQL, but... (-1, Offtopic)

Anonymous Coward | more than 8 years ago | (#14324583)

I don't usually reply to sigs, but:-

There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.

. . . you forgot the money box, which allows a bigger soap box, to influence the ballot box, to allow you to influence the jury box, so that you can use the ammo box.

Re:I like MySQL, but... (1)

east coast (590680) | more than 8 years ago | (#14324704)

I don't know what world you live in but MSDE is the foundation to WAY more products than I care to think about.

Yeah, products. notice the word that you used there.

Re:I like MySQL, but... (2, Interesting)

TubeSteak (669689) | more than 8 years ago | (#14324404)

No it isn't fair, but that's what those companies get for releasing a free product that can't compare to other free offerings aka OSS.

It's exactly like comparing crippleware with freeware.
Whose problem is it if the freeware is the better product?

Re:I like MySQL, but... (2, Interesting)

Daniel Dvorkin (106857) | more than 8 years ago | (#14324409)

Yes, I think it's a fair comparison, because the people making the decisions on which DBMS to use generally don't care about open-source vs. proprietary (or if they care, they care in the wrong way, but that's a whole 'nother discussion.) What they care about is how much the software costs; and MySQL (and Postgres, yes) costs exactly the same as the free proprietary crippleware: $0. So it's a perfectly fair comparison of "value for your non-dollar."

Except the license might make MySQL cost $$$..... (2, Insightful)

Noksagt (69097) | more than 8 years ago | (#14324549)

The gratis version of MySQL is released under the GPL with the exception that it can be included in ANY F/OSS software. If you are creating an open source product or won't distribute your software, this is great. If you are producing commercial proprietary software, you must purchase a license to MySQL. I believe that many of the gratis, proprietary programs don't carry this restriction.

Re:I like MySQL, but... (2, Funny)

Anonymous Coward | more than 8 years ago | (#14324418)

Remember MySQL is a crippled database, thus comparing it to crippled pay-for commercial offerings is completely fair. Both are meant to be tasters as to what can be offered by a proper, fully fledged database.

Re:I like MySQL, but... (0)

Anonymous Coward | more than 8 years ago | (#14324444)

I wish I could mod you +500, instead I'll just post this saying I wish I could mod you +500...

Re:I like MySQL, but... (1)

badriram (699489) | more than 8 years ago | (#14324419)

Not just that, with SQL Server they look at express editions, and compare that to full featured versions of other software. They do not look at performance or anything else. It looks more like someone wrote this not giving any care to the quality of the databases servers, relibility, scalability.
Plus anyone that says that mysql is better than oracle, db2 and sql server is smoking something....

Re:I like MySQL, but...sigh (4, Funny)

mr_z_beeblebrox (591077) | more than 8 years ago | (#14324689)

with crippled versions of said commercial products?

The poster meant differently abled versions.

Happy random day in December!

Re:I like MySQL, but... (1)

timeOday (582209) | more than 8 years ago | (#14324715)

Is it really fair to compare an open-source project, designed to compete with for-pay commercial products, with crippled versions of said commercial products?
You think it's more fair to compare $0 vs $$$$ than $0 vs $0?

Obligatory.... (5, Insightful)

mla_anderson (578539) | more than 8 years ago | (#14324379)

And what about PostgreSQL? It should fare very well.

Re:Obligatory.... (4, Informative)

slashdotnickname (882178) | more than 8 years ago | (#14324466)

And what about PostgreSQL? It should fare very well.

Indeed. In fact, tests in the past showed postgres was a better choice over mysql. But don't take my word, compare it yourself with those in the article...

http://www.postgresql.org/ [postgresql.org]

Laughable! (2, Interesting)

Anonymous Coward | more than 8 years ago | (#14324492)

I don't know... Their "results" are laughable. MySQL above SQL Server Express (and BETA too)? Yes, the Express ed limits you to 1 CPU (they HAVE to limit it in some way so large companies buy their product), but otherwise.... It's FAR better than MySQL! And then they compare that with a 20k$+ RDBMS (Oracle; and also DB2 which also costs thousands)... If you include such an expensive DB, why not include SQL Server (the "real"/uncrippled thing) for comparison? MySQL may not be limited in terms of what HW it will run onto, but it's FAR lesser of a "enterprise grade" RDBMS than ALL the other solutions they evaluated (and that would include PostgreSQL too). At that rate I wouldn't be surprised to see them praise SQLite over Oracle or such. It sounds like this guy has NO clue about MySQL's real-life limitations - perhaps he's never used it...

There are all kinds of different DBs to fill different needs. Use whatever works for your scenario... MySQL is about the last one I'd use in most cases. And again, not including PostgreSQL?

Re:Obligatory.... (1, Flamebait)

Eric Savage (28245) | more than 8 years ago | (#14324662)

Even more obligatory, isn't someone going to post the list of mysql's shortcomings circa version 3?

Microsoft? (3, Insightful)

Atlantis-Rising (857278) | more than 8 years ago | (#14324406)

I only skimmed TFA, but why are they using Microsoft's Express Beta version? rather than SQL Server Standard edition? Kind of rigged, ne? Plus, it's a beta! Come on! I know it's microsoft, and this is slashdot, but please!

From TFA (1)

TubeSteak (669689) | more than 8 years ago | (#14324422)

Printer Friendly Link [nyud.net]

Note: At the time of this review Microsoft was in the midst of updating its database portfolio, and only the Beta version was available, and just prior to printing Oracle released a new database that is free of charge.

Re:Microsoft? (1)

MBCook (132727) | more than 8 years ago | (#14324518)

It's obvious that you only skimmed it, in the first page it answers both of these questions. They are using the Microsoft Express beta because that is MS's newest product. It is almost out and would not be fare to review a product that will disappear soon. They note ALL of this. Plus they are only showing features, not performance, so being a beta doesn't really hurt it.

As for SQL Server Standard, they are showing "junior" databases, designed for small businesses. They have the little version of DB2, the little version of Oracle, etc. They are not comparing enterprise level DBs. I believe there was a sentence that said they were working on that.

I agree with others that they should have included ProstreSQL, but they didn't. As it is, MySQL shows up VERY competitively. The only other DB that was free was the MS one which had MAJOR limitations (only one CPU will be used, must be on Windows, etc).

Really, using the beta MS product was probably the most fair thing to do.

Re:Microsoft? (1)

AaronBrethorst (860210) | more than 8 years ago | (#14324534)

SQL Server 2005 (and SQL Server Express, or SSE) launched almost two months ago now. You can go download the full RTM version of SSE from http://msdn.microsoft.com/vstudio/express/sql/ [microsoft.com] right this second if you want to.

Re:Microsoft? (1)

bigman2003 (671309) | more than 8 years ago | (#14324561)

Anytime a Beta product is compared to a released product, it's a sham.

Did you see the prices on the other commercial products? If our small company is choosing their database by price, then the SQL Server Standard Edition is priced fairly with the other commercial offerings.

Standard Edition is not the Enterprise Edition..so it is one of their 'junior' products.

Yes, MySQL would have them all beat on price. But putting a free beta product vs. other commerical products is a load of crap.

Re:Microsoft? (1)

robgamble (925419) | more than 8 years ago | (#14324675)

I wouldn't call SQL Server Standard a junior product... Take a look at the differences between editions here [microsoft.com] . SQL Server 2005 Standard has no cap on RAM like SQL 2000 Standard did, and you can cluster it. Now factor in what it costs [cdw.com] , I think it's a pretty smart buy.

Re:Microsoft? (1)

bigman2003 (671309) | more than 8 years ago | (#14324729)

Absolutely, I think it is a smart buy too. But, it is not their 'full' version.

It is comparable to the other vendors light versions in the fact that it is a step down from their premier offerings.

Two things... (3, Insightful)

komodotoes (939836) | more than 8 years ago | (#14324417)

First, you would think that PostgreSql would be top o' the heap because it's equal to / arguably better than MySql in features, and it's under a more permissive licence.

Second - Sweet Hog of Prague! Oracle 10g costs $24 grand Per CPU!?!?!?!?




NeverEndingBillboard.com [neverendingbillboard.com]

Re:Two things... (4, Informative)

imemyself (757318) | more than 8 years ago | (#14324496)

I'm not sure what Oracle version that's for. Oracle DB Stadnard is $15k per processor. Enterprise is $40,000 per CPU. There is also a Standard One edition that's "only" $5k per CPU. In addition to the in-beta Oracle XE(free). On the bright side, pretty much all of Oracle's stuff is free for development use.

Re:Two things... (2, Funny)

ScrewMaster (602015) | more than 8 years ago | (#14324542)

On the bright side, pretty much all of Oracle's stuff is free for development use.

Developers, developers, Developers, DEVELOPERS.

It's not just for Microsoft anymore.

Re:Two things... (2, Funny)

GoofyBoy (44399) | more than 8 years ago | (#14324620)

I guess you better sit down before you hear how much support costs. :)

Re:Two things... (3, Insightful)

kpharmer (452893) | more than 8 years ago | (#14324624)

> Second - Sweet Hog of Prague! Oracle 10g costs $24 grand Per CPU!?!?!?!?

oh, it can be *far* more expensive than that. The enterprise version is $40k/CPU, and that doesn't even including partitioning. To get Partitioning (and yes, you want it for any large database) you're looking at an extra $10k/CPU. And there are other extra charges as well. You can easily end up at $60k/CPU.

On the flip side, you can also get away with $5k/CPU if you know what you're doing, and if what you're doing is small. On the large side where you'd pay $60k/CPU you've probably also got $600k in hardware and a staff of at least a half-dozen. Guess what? The software & hardware almost always end up as a rounding-error compared to the labor costs. Doesn't really matter if the application is custom or commercial, they both seem to have about the same labor costs.

Re:Two things... (1)

magarity (164372) | more than 8 years ago | (#14324669)

Oracle 10g costs $24 grand Per CPU!?!?!?!?
 
Now you know how, with a company that sells basically one product and its support, Larry Ellison gets his fortune within spitting distance of B. Gates's; whose company sells a bewildering slew of products found preinstalled (and prepaid) on virtually all new PCs.

So, how much did MySQL AB pay for this? (5, Interesting)

JanusFury (452699) | more than 8 years ago | (#14324421)

So, look at the pages dedicated to MS SQL Express and IBM DB2. DB2 costs thousands of dollars, MS SQL Express is free. DB2 has a slightly superior feature set and additionally runs on Linux... and they rate it drastically higher, even though it's ridiculously expensive in comparison. Don't even get me started on the fact that the MS SQL version they tested was a beta (almost every Beta MS releases is far slower than the release versions, and contains tons of additional debugging code - VC# Express Betas were drastically slower than the release version of VC# Express.) Of course, none of this is really a suprise, since the 'labs test' is pretty obviously nothing of the sort.

And of course, absolutely no mention of stability, reliability, bugs, robustness, etc... what a suprise, considering that both MSSQL and MySQL are arguably far behind in those areas.

Where are the test cases? Where is the testing methodology? How about some explanation of particular cases where one solution didn't compare with the others, or where one solution excelled? This 'labs test' reads more like a sales pitch than anything resembling an actual test.

Re:So, how much did MySQL AB pay for this? (1)

KarmaMB84 (743001) | more than 8 years ago | (#14324491)

They probably should've went with SQL Server Standard instead of Express too.... They probably just went with Express so they could say they tested 2 free and 2 non-free and dismiss SQL Express outright...

what about power? (1)

dartarrow (930250) | more than 8 years ago | (#14324424)

from TFA: "bringing administration and configuration within the realms of the novice" and "Obviously ease of configuration and administration is paramount -- the in-house staff must be able to easily enter and update data, while the novice administrator must be able to make minor changes to the database on the fly."

Is it Just me or are we awarding our winners based on how easy it is to use, as compared to how much more power it places in our hands?

Re:what about power? (1)

TubeSteak (669689) | more than 8 years ago | (#14324477)

The amount of power a program puts into your hands is related to its usability.

If the interface is too complex, or utter crap, then it doesn't matter how configurable or useful the program is.

I mean, come on, /.ers constantly bitch about usability and interfaces. We all know that a bad UI can kill an otherwise decent program

Re:what about power? (0)

Anonymous Coward | more than 8 years ago | (#14324580)

You have just described why the open source movement has failed thus far.

Just Anti-microsoft (0)

may05 (641419) | more than 8 years ago | (#14324431)

So Microsoft's SQL Server Express got the lowest 2.5 stars rating. Why I am not suruprised? I knew the guys in the lab have high anti-microsoft sentiments.

I agree (3, Insightful)

toadlife (301863) | more than 8 years ago | (#14324713)

I loved these zingers:

"What Express does not include when compared to SQL Server SE and above is Analysis Services, Reporting Services, Data Transformation Services, and Notification Services but some users would argue that these features are crippleware anyway."

Crippleware? What are the "some users" that argue this? The users that hate Microsoft? Also, DTS has been discontinued, and is not in any version of SQL Server 2005, so these guys obviously did not do their homework.

"There is no denying that SQL Server Express is the weakest of the databases in this group but..."

How exactly is there "no denying it"? Based on what is this claim made? Express isn't even designed for production use anyway...it aimed at developers and enthusiasts/students who want to learn their products.

Crappy business model... (4, Insightful)

xxxJonBoyxxx (565205) | more than 8 years ago | (#14324432)

This looks like one crappy business model:

"Our scenario in this comparison calls for a database solution for a relatively small e-commerce company with less than 200 employees. The company sells DVDs and books over the Internet and will initially have around 1000 customers"

Lemme see...five customers for each employee? With an American workforce pulling down $40K each with benefits, that means each customer needs to buy $8K of useless crap from this one company every year.

Re:Crappy business model... (4, Funny)

burns210 (572621) | more than 8 years ago | (#14324463)

So they happen to sell adult movies on DVD. People spend big money on that.... so I hear.

Re:Crappy business model... (1)

KarmaMB84 (743001) | more than 8 years ago | (#14324516)

"less than 200" and most employees would probably be min wage and no benefits whatsoever.

Maybe they're Chinese sex slaves. (1)

crovira (10242) | more than 8 years ago | (#14324591)

That really cuts down on salary expenses and on their clothing allowance.

Re:Crappy business model... (1)

timeOday (582209) | more than 8 years ago | (#14324737)

Lemme see...five customers for each employee? With an American workforce pulling down $40K each with benefits, that means each customer needs to buy $8K of useless crap from this one company every year.
It does seem like a lot of wasted ink... why didn't they simply say "our scenario is based on pets.com"

Oh wait, five customers for each employee? I read it backwards.

SQL Server Express Is Mostly for Developers (5, Insightful)

ThinkFr33ly (902481) | more than 8 years ago | (#14324447)

SQL Server Express [microsoft.com] is not really meant for any serious production environments. I suppose one could use it for a personal web site here and there, but it is a tool primarily meant for developers.

Instead of having to have access to a full fledged SQL Server, you use SQL Server Express to develop your application and then deploy it to a full SQL Server when that server becomes available.

Since SQL Server Express supports the vast majority of the features [microsoft.com] that a developer might need, it is very useful during the initial development of an application.

In my experience, SQL Server Express is great for basic projects (like a personal web site or blog) and for the initial phases of development of a "real" project. Once you start getting into the realm of serious applications, where one might need finer grained control of isolation and locking, or when you are at the point where you need to do performance testing of your application, you really do need to move up to the full SQL Server box.

At any rate, I'm not really sure this comparison is all that fair. MySQL makes an attempt to be a database server for "real" applications, where as SQL Server Express is more of a development tool / MS Access replacement that is targeted at personal projects.

Re:SQL Server Express Is Mostly for Developers (1)

MBCook (132727) | more than 8 years ago | (#14324527)

All the DBs that were reviewed were the "junior" versions like the MS one. MySQL was the "token open source" entry. They HAD to compare MySQL because there is no MySQL junior like the rest of the products, and they do mention that it was designed to compete with Oracle or DB2 and not other little DBs.

Re:SQL Server Express Is Mostly for Developers (1)

vadim_t (324782) | more than 8 years ago | (#14324655)

Yeah, that's great. And you "only" need to pay $3900, $6000 or $25000 *per CPU* to upgrade if your site ever outgrows it. If you're going to use it for a website, only per CPU licensing is acceptable. Great plan, really. By the time you find Express won't cut it anymore, it'd probably take quite a while to migrate from it.

For most sites, your hardware probably costs less than the license. Hardly a good plan. I've used MS SQL Server, and it's good, but I have no idea why would anybody even WANT to run a blog from it. MySQL and postgres are perfectly suitable for that, and for the price of the software you could have a second server instead.

Besides, commercial software is often cleverly limited: You find that the next version/edition has just the stuff missing from the one you're using, but doesn't have ALL of the features you'd like. That's in the Real Expensive Edition, even if it's not all that technically complicated.

An example for Express: no backup, no replication. How are you going to backup your site's DB, take the server down, detach the database and make a copy?

Re:SQL Server Express Is Mostly for Developers (2, Informative)

ThinkFr33ly (902481) | more than 8 years ago | (#14324681)

Yeah, that's great. And you "only" need to pay $3900, $6000 or $25000 *per CPU* to upgrade if your site ever outgrows it.

Which is why you use it for personal sites, not for "real" applications, just as I said. The people who would use SQL Express are the same people who used Access databases for their sites... but this is far better than Access in almost every way.

By the time you find Express won't cut it anymore, it'd probably take quite a while to migrate from it.

Well, perhaps from a financial point of view, but that was poor planning on your part. From a technical point of view, SQL Server Express is a subset of SQL Server, and any application that runs on Express will run on SQL Server after running it though the upgrade wizard, which takes all of 5 seconds and 2 clicks of the mouse button.

An example for Express: no backup, no replication. How are you going to backup your site's DB, take the server down, detach the database and make a copy?

No, you copy/paste the .MDF file to a safe place.

Not surprising (3, Informative)

aiken_d (127097) | more than 8 years ago | (#14324451)

Even the crippled versions of DB2, Oracle, and MSSQL still have the underpinings for advanced features that MySQL doesn't support. From real replication to actual performance monitoring (all three of the big guys provide detailed hooks into the guts of the DB) to support for multiple filegroups and indexes and databases spread across filegroups, the big DB's have features that are important but impact performance.

Heck, you want to see MySQL get its ass kicked on performance? Run a test on a filesystem against MySQL.

Comparing performance among databases is only meaningful if all of the candidates have the features you need. MySQL has come a long way, and I use it in production every day, but this is kind of a silly comparison. The free versions of the big DB's are meant to provide an easy migration path to more feature-complete versions; if you use SQL Server Express and want to upgrade to something that that supports clustering and log shipping, you may your money and get your features. With MySQL, if you outgrow it, you either need to start writing code, migrating to something else, or sitting on your hands waiting for it to get there.

Recap, for those who won't RTFC and want to slag me: I like MySQL. I use it for mission critical purposes in production environments. However, comparing a simpler product's performance to (crippled versions of) more robust products is silly.

Cheers
-b

Re:Not surprising (1)

RedNovember (887384) | more than 8 years ago | (#14324478)

Heck, you want to see MySQL get its ass kicked on performance? Run a test on a filesystem against MySQL.

Hell, I'm not surprised. I beat myself in the 40 yard dash every day.

Re:Not surprising (5, Informative)

MBCook (132727) | more than 8 years ago | (#14324538)

I just finished reading it, and the didn't run any performance tests (which I would have liked to have seen). They were comparing options, features, prices, etc. The only mention of performance was things like "here are some neat tunable options that affect performance." and "but performance won't scale that well because you are limited to one CPU" (not direct quotes). This article is an overview, not a "lab test". I'm not sure where that came from. The original article says they were "tested" also. They installed all the products and poked around, but no performance numbers were presented at all.

Worst "Technical" Article Ever (0)

Anonymous Coward | more than 8 years ago | (#14324472)

How can one even take this seriously with unsubstantiated statements like:

Brilliant scaling capabilities "as is".

Who says so? Based on what data? In this context, sure it "supports" tables up to 64TB, that doesn't mean it scales, just that it supports big tables.

Er, I give the article an unsubstianted 0 out of 4 stars based on my own ad-hoc comparisons to other articles. See, I can do it too, whee!

Most important comparison... (3, Insightful)

aapold (753705) | more than 8 years ago | (#14324483)

the money you can get paid as a DBA for each type of database...

Interesting Read, I say. (1)

oztiks (921504) | more than 8 years ago | (#14324505)

For many businesses, a database is the vital organ that lives, breathes, and protects precious data -- the treasured jewel of their enterprise. Everything they know, and every way to know it, is dictated by these all-powerful tools.

The author definatly sounds like a product of the 60's or the 70's.

While there are other popular database products available, such as Sybase, we will save a full comparison for another time.

Sybase?

Ok, it's free, performs good, etc. (1)

simetra (155655) | more than 8 years ago | (#14324548)

But still... I think MySQL will really take off more when the scheduling thing is put into place. MS SQL Server may be proprietary and etc., but when you're loaded down with a lot of tasks, it's a lot easier to build DTS tasks and schedule them as jobs than to jerry-rig a MySql solution with stored procedures and batch files. Just today I decided doing something with MySql just wasn't worth the bother - I do have full versions of MS SQL Server at my disposal. Though, it appears that Visual Studio 2005 doesn't like MS SQL Server pre-2000.... grrr...


By The Way.... X11R7.0 was released today... go to www.X.org for details.


Makes sense (1)

Mr. Freeman (933986) | more than 8 years ago | (#14324551)

Open source allows more people to work on the project. Which usually means that code is more streamlined and efficient. Streamlined, efficient code is usually faster than closed source alternatives which often tend to be much more poorly written.

Re:Makes sense (0)

Anonymous Coward | more than 8 years ago | (#14324642)

That must explain why OpenOffice and FireFox are memory and/or CPU hogs, correct?

Test like this are completely useless (0)

Anonymous Coward | more than 8 years ago | (#14324557)

seriously...why bother to do any test ? for high end, Oracle, IBM, and Microsoft is pretty good at mid level while MySQL kill in low end. there are a lot of standard features in DB2, Oracle, and MS SQL that Mysql 5 still doesn't have. why compare crippled db against an opensource db that isn't crippled? Another OSS FUD!

OMG (5, Informative)

mitcharoni (222957) | more than 8 years ago | (#14324572)

This is THE most retarded review of modern database systems that I've ever read. From the moment I read the overview of MSSQL Express, I knew what the writer's opinion was going to be, and that was completely tilted in MySQL's favor. The basic descriptions of product feature were in most cases wrong. One would get the impression from this article that a major RDBMS would always allow dirty reads. And while it's true that you CAN do that, it is not the default behavior for any of them. It has to be explicity done and you have to go out of your way in your SQL code to make that happen.

It's things like that where you just ultimately conclude that the writer(s) of this article just does not know what the hell he's talking about and doesn't have a basic understanding of the concepts or products under review. It's just more OSS nonsensical propaganda in my opinion. And don't fool yourselves into thinking that an article like this is going to change any IT manager's mind about what DBMS he's going to deploy in his enterprise.

I love MySQL but... (4, Insightful)

Yonder Way (603108) | more than 8 years ago | (#14324577)

...leaving out PostgreSQL was a glaring omission.

Sick and Tired (4, Insightful)

vectorian798 (792613) | more than 8 years ago | (#14324579)

I am so damn sick and tired of biased headlines and (often) even more biased comments. I know Slashdot is part of OSTG and all, but come on - it is beneficial to all concerned to be FAIR and unbiased. To compare MySQL to Oracle, DB2, or SQL Server is a joke. Anyone with half a hint of what they are talking about would know this. MySQL is only better for SMALL websites where speed is more of a deciding factor.

In any case, even ignoring the fact that these are crippled versions of the real deal, this isn't even a proper test! Let's see what a REAL DB comparison looks like:
Complete TPC-H Results List [tpc.org]

I know that MySQL and PostgreSQL aren't included in that result list but that is how a test SHOULD be performed, not with the ridiculously hand-wavy methods the authors use to 'score' each DB software.

That being said, no one has any business saying MySQL >> DB2 or Oracle. That's a joke. MySQL would SUFFER in the 10TB test. Also, where is Teradata? Furthermore, the way that the article treats SQL Server is even more ridiculous, because their 'free' version is likely the least functional of the lot since it is SPECIFICALLY aimed at learning on one's own desktop. Nothing to see here, just a random useless article trying to say something to push its writers' ideas without much basis.

like having my grandma rate sports cars (5, Insightful)

kpharmer (452893) | more than 8 years ago | (#14324584)

The reviewers know databases about as well as my grandma knows sports cars. They seem to mean well, and admit that this comparison was complex and hard. In the end they were unfortunately over their head.

PRODUCT SELECTION

1. where's postgresql? This is the product that the commercial vendors need to be the most nervous about. Sure, they're loosing more low-end revenue to mysql right now, but postgresql is getting picked up by some big players. It is far more mature than MySQL, doesn't have the quality issues, isn't partially owned by Oracle, etc.

2. where's at least a mention of all the various other solutions - from Firebird to Derby (Cloudscape)

FUTURE PROOFING

1. They mistakenly say that mysql doesn't require scaling up to enterprise versions like db2/oracle do. This is incorrect because mysql lags behind oracle & db2 for performance in many situations:
        - since it doesn't support query parallelism (which provides near linear performance improves to db2/oracle)
        - since it doesn't support partitioning (which can provide 10x performance improvements to db2/oracle)
        - since it doesn't have a mature optimizers (which means that queries with 5 table joins can tank)
        - since it lacks memory tuning flexibility
Together this means that as your data increases you have to continue moving a mysql database to larger & larger hardware.

In other words, if you need to scan a table with 10 million rows in it, then join that data against 6 other tables - db2/oracle can:
        - leverage partitioning so only scan 1mil rows or so instead of 10mil
        - split the scan across four cpus
        - leverage more efficiently tuned memory (ensuring little tables & indexes stay in memory)
        - use the best possible join
and probably complete the query in 1/60th the time that mysql would take. And that means that you could get better performance from db2/oracle on a $25,000 four-way smp than from mysql on a $2,000,000 32-way.

2. They fail to mention that Oracle now owns the most valuable parts of the MySQL solution (Innodb). Oracle has obviously purchased this component (which is how mysql supports transactions, pk/fk constraints, etc) in order to harm MySQL. Since there is no other viable replacement for Innodb the MySQL future is in serious doubt.

3. They probably weren't aware that MySQL is the least ANSI-SQL compliant database in the market. This is means that porting mysql code to another database is a royal pain in the butt compared to code supporting postgresql, db2, etc. Though, to be fair, it is getting much better.

LICENSING COSTS:

1. mysql isn't necessarily free, and can cost more than the commercial alternatives for small distributed commercial apps

2. db2 licensing only provided for DB2 Express- which is the low-cost 2-cpu model. That's often ok, hardly compares to Oracle standard edition also included. Also, I think they may have gotten their db2 costs mixed up between express & workgroup editions.

CONCLUSIONS & MISC

They mentioned some of the great mysql features like clustering and fault tolerance. Sorry, but mysql cluster solution is a separate telecom product that they purchased, that stores your data in memory - limiting your database size to however much memory you can afford. Not a practical solution for very many.

The mysql fault tolerance is really just replication. That's sad.

They mention one strength of mysql is their maximum database size of 64TB - which is nonsense, just because its internal registers and pointers can handle a theoretical maximum of 64TB doesn't mean that it would ever make sense to put more than 20 GB on it. DB2 & Oracle can go to 64TB, but today almost nobody is going beyond 10 TB just due to backup performance, cpu & disk speed, etc.

IN A NUTSHELL

Oh well, database comparisons *are* difficult. Especially to compare four complex products in just, what? Six pages?

As I mentioned above, the parts regarding mysql were the most glaring. The most affected by the current industry hype. Maybe in five years they'll deserve it, but today they've still got to wrestle their future back from oracle, and to fix a legacy of data quality issues. Once they've got those two major issues resolved, then they'll be a fine solution for smallish or index-oriented apps.

But they need to look out - since while they're working on cleaning up these problems Postgresql is actually adding the features for it to complete with db2/oracle/sql server at the high end.

its not my sqls job to gaurentee data integrity (4, Insightful)

Anonymous Coward | more than 8 years ago | (#14324585)

this is why mysql is a joke

http://dev.mysql.com/doc/refman/5.0/en/constraint- invalid-data.html [mysql.com]

" Before MySQL 5.0.2, MySQL is forgiving of illegal or improper data values and coerces them to legal values for data entry. In MySQL 5.0.2 and up, that remains the default behavior, but you can select more traditional treatment of bad values such that the server rejects them and aborts the statement in which they occur. This section describes the default (forgiving) behavior of MySQL, as well as the newer strict SQL mode and how it differs."

" MySQL allows you to store certain incorrect date values into DATE and DATETIME columns (such as '2000-02-31' or '2000-02-00'). The idea is that it's not the job of the SQL server to validate dates. If MySQL can store a date value and retrieve exactly the same value, MySQL stores it as given. If the date is totally wrong (outside the server's ability to store it), the special date value '0000-00-00' is stored in the column instead."

This is still a hobbiest toy.

Re:its not my sqls job to gaurentee data integrity (0, Troll)

beast6228 (472737) | more than 8 years ago | (#14324663)

"MySQL is a joke?"

Then why does everyone use it?

"This is still a hobbiest toy"

Then why does most everyone use it then?
Why do most webhosting companies use it?
Why do most webhosting companies use linux?

Do a search for webhosting, try to find the best and most reliable host on the internet. You will see that they offer Linux and MySQL as their flagship platform.

I won't comment on data integrity, it's up to the database programmer to decide on which features of MySQL he will be using to incorporate into his application. As they say, there are workarounds for almost everthing. If MySQL was so bad or so lacking, then nobody would use it.

Right?

Re:its not my sqls job to gaurentee data integrity (0)

Anonymous Coward | more than 8 years ago | (#14324720)

everyone DOESN'T use it. check your facts, the people that use it generally use it for web sites or smaller apps that DON'T require 24x7 uptime. The reason web hosting companies use it is for the most part they are mickey mouse operations that have little to no SLA's (mot even say in the contracts they provide best effort uptime only). when a company stands to lose millions of dollars an hour for DB downtime you will NOT find mysql as the chosen DB.

This article forgets a few key points... (-1, Offtopic)

Anonymous Coward | more than 8 years ago | (#14324589)

Google: A Patriot's Letter

A whole new way of reviewing software!!! (1)

swordgeek (112599) | more than 8 years ago | (#14324616)

Product comparison by reading the feature list on the back of the box. Now THAT'S a great idea! Saves the work of actually testing the products.

Nice writeup, but horrible ratings.. (1)

cybrthng (22291) | more than 8 years ago | (#14324635)

How they only give Oracle say 2 1/2 rating for interoppability and tool set is beyond me. Oracle 10g even the light version with Toad, Oracle Developer 10g, any Application sever (or php if you wish) is a smoking combination of not just performance but high availability, recoverability and reliability.

MySQL can actually cost more then all of the others since they charge per instance for support. Oracle is support for your environment but license for production. (so you get service levels for test/dev/uat/prod so on and so forth)

Mysql is fine for what it is, but even 10glite cutback from its big brother has so many other features its like comparing gwbasic against c++.

Its good enough for Google! (3, Interesting)

dbucowboy (891058) | more than 8 years ago | (#14324646)

On http://xooglers.blogspot.com/ [blogspot.com] (ex google employees blog), it is mentioned that Google had started their adsense and adwords programs in MySQL. They moved to a "real" database and had so many problems that they decided to migrate back to MySQL, which they are still using to run Adsense and Adwords today. http://xooglers.blogspot.com/2005/12/lets-get-real -database.html [blogspot.com]

MySQL vs. Oracle install and use (0, Flamebait)

chroma (33185) | more than 8 years ago | (#14324686)

As I was struggling through an Oracle install a while back that Oracle doesn't have a great incentive to keep their products easy to use. Many common tasks, such as adding a column to a table or even just allowing clients to connect, are needlessly complex. I figure that this is actually part of their business model. Customers realize that they're in over their heads with the Oracle database, so they pay for premium support, trained Oracle consultants, and the like. Think of all the consultants who would starve if Oracle was easy to use.

Contrast this with MySQL. Installation is a breeze, and it's pretty flexible after it's installed: you can add or resize columns on the fly. Plus no TNSNAMES.ORA to worry about. I figure this is because MySQL is open source and the developers want to get you productive right away so that you continue to use their system, and eventually pay them for consulting and support, even when your application has outgrown the software.

Yawn (1, Funny)

Anonymous Coward | more than 8 years ago | (#14324708)

"MySQL Beats Commercial Databases in Labs Test"

In other news, bicycles found to have two wheels.

The writer doesn't know his head from his ass (5, Informative)

JDAustin (468180) | more than 8 years ago | (#14324726)

In describing SQL Server Express, he states

SQL Server Express is one of two free databases we tested and is actually Microsoft's replacement for its earlier free offering the Microsoft Desktop Engine (MSDE) which was based on the old Access technology.


This is utterly false.

MSDE is based off SQL Server 2000, which itself a revision to SQL Server 7. MS Access has NOTHING to do with SQL Server (excpet proving nice single DB front ends via ADPs). When your dishonest (or just stupid) so early in a article, you loose your reader.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>