Forgot your password?
typodupeerror
Databases Programming Software GNU is Not Unix IT

MySQL Beats Commercial Databases in Labs Test 419

Posted by CowboyNeal
from the dark-horses dept.
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."
This discussion has been archived. No new comments can be posted.

MySQL Beats Commercial Databases in Labs Test

Comments Filter:
  • by Anonymous Coward on Thursday December 22, 2005 @11:23PM (#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?
    • by ls -la (937805) on Thursday December 22, 2005 @11:37PM (#14324410) Journal
      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.
      • by Red Alastor (742410) on Friday December 23, 2005 @12:54AM (#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.
        • by tepples (727027) <{tepples} {at} {gmail.com}> on Friday December 23, 2005 @01:39AM (#14324904) Homepage Journal

          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.

          When you buy downloadable software, you are given the chance to review the EULA before you enter your payment information. Should this ruling against EULAs stand up in court, I can see Amazon or foreign counterparts doing the same for boxed software under heavy pressure from major BSA publishers.

          "But what about retail sales in person?" The United States has enacted the Digital Millennium Copyright Act and has imposed identical conditions on Australia through a recent un-Free Trade Agreement. Under the DMCA, decrypting a copyrighted work is an exclusive right of the copyright owner. This means that a retail software transaction can now be decomposed into two separate offer-acceptance-consideration sequences: The first is a regular sale, where money is traded for a box containing a disc. The second is a license or licence to decrypt the installer, where your rights are traded for decryption during the install process. The disc is useful only as a toy until you enter into this second contract.

          Even if this DMCA-based theory doesn't hold water, nothing stops a publisher from requiring all authorized retailers to make a working Internet terminal available to customers and putting a conspicuous notice on the packaging: "This sale is subject to your acceptance of terms and conditions displayed at http://eula.microsoft.com/windows/xp". In fact, this method has been upheld in a U.S. Court of Appeals [corante.com].

        • Uhh (Score:5, Insightful)

          by CaptainZapp (182233) * on Friday December 23, 2005 @06:53AM (#14325663) Homepage
          Enterprise software is very rarely sold shrink wrapped with an EULA. Usually the vendors sales people sit together with somebody senior from the procurement department and tries to squeeze as much money as possible from the purchaser.

          Those contracts (which usually go through some dunderhead in legal) are quite specific in what you can and can't do. For example: They may specify the number of seats, if and in what form the db may be connected to the internet, or even the business in which the product may be used for.

          Those are very much legal contracts and have (even though you may call it an EULA) not a helluvalot to do with shrink-wrap or click-through EULAs.

    • 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.
      • indeed, no benchmarks were in the article.

        i guess mysql would have beaten the rest in simple queries and perhaps would have gotten it's ass kicked when it goes down to many subselects that depend on indexes to join up, mysql had some bug or not yet include optimization lack there some time ago, dunno where it is now.

        but i was very surprised how "deep" the comparision between features was :p

        stored procedures: mysql has them all right, but the pointers are not yet fully implemented in 5.0 they miss some featu
    • by AKAImBatman (238306) <akaimbatman@@@gmail...com> on Friday December 23, 2005 @12:13AM (#14324570) Homepage Journal
      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 (Score:5, Informative)

      by Anonymous Coward on Friday December 23, 2005 @12:17AM (#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
      • by Forge (2456) <kevinforgeNO@SPAMgmail.com> on Friday December 23, 2005 @02:02AM (#14324978) Homepage Journal
        "However, comparing a simpler product's performance to (crippled versions of) more robust products is silly."

        Ohhmmm... They didn't compare performance at all.

        Just did a basic install and initial setup then ran with the feature list and compared price/alowed configs.

        The article basicaly confirms what I recomend (and you probebly do) anyway. I.e. If the Free product can do the job "corectly" (Catch all term for performance, reliability features etc...) there is no need for the $$$ databases.

        If however you need to do something that only a comercial database will alow you have to get that database.

        Most of my customers NEVER chose the databases they use. They chose a specific application then got that app vendor to spell out what database, OS and Hardware they recomend for this workload.

  • by SanityInAnarchy (655584) <ninja@slaphack.com> on Thursday December 22, 2005 @11:26PM (#14324370) Journal
    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?
    • by east coast (590680) on Thursday December 22, 2005 @11:34PM (#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.
      • by olddotter (638430)
        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
      • 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.
    • 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?
      • by trezor (555230)

        To be honest I think feature wise MS SQL Server beats the shit out of MySQL. And that the "old" 2000 version, not the new 2005 which had quite a few improvements.

        The only limitation in these "express editions" is how large the DB can be, how much ram it will utilize and how many CPUs it will run on. 4GB dbs, 2 GB ram and 1 CPU iirc. Feature and performance-wise on that same (limited) hardware it will perform as good as the commercial version.

        As for large databases I woulnd't trust MySQL at all. It's

        • by richlv (778496)
          well, this is their own list, but hey, it has some names...
          http://www.mysql.com/why-mysql/case-studies/ [mysql.com]

          then there's this story ;)
          http://xooglers.blogspot.com/2005/12/lets-get-real -database.html [blogspot.com]

          hoping that "you get what you pay for" will get a swarm of professional bloodsuckers that will make sure to sell you the most expensive plan, even you could get the same quality for much less.

          and, adiitionally, i don't hear much "you can trust big systems to ms products" nowadays ;)
          usually stories are quite opposite.
    • 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."
      • 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.
    • by Anonymous Coward
      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.
    • 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....
    • by mr_z_beeblebrox (591077) on Friday December 23, 2005 @12:43AM (#14324689) Journal
      with crippled versions of said commercial products?

      The poster meant differently abled versions.

      Happy random day in December!
    • 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?
    • by harlows_monkeys (106428) on Friday December 23, 2005 @03:50AM (#14325247) Homepage
      And what about postgres?

      PostgreSQL has its own problems. I have a simple table, with a couple bigint columns. Consider these two statements:

      1. select * from tbl where id = 123;

      2. select * from tbl where id = '123';

      The second is nearly three orders of magnitude faster.

      People have complained about this annoying gotcha for years.

  • Obligatory.... (Score:5, Insightful)

    by mla_anderson (578539) on Thursday December 22, 2005 @11:27PM (#14324379) Homepage

    And what about PostgreSQL? It should fare very well.

    • Re:Obligatory.... (Score:5, Informative)

      by slashdotnickname (882178) on Thursday December 22, 2005 @11:46PM (#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! (Score:2, Interesting)

      by Anonymous Coward
      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 w
    • Re:Obligatory.... (Score:2, Flamebait)

      by Eric Savage (28245)
      Even more obligatory, isn't someone going to post the list of mysql's shortcomings circa version 3?
  • Microsoft? (Score:3, Insightful)

    by Atlantis-Rising (857278) on Thursday December 22, 2005 @11:36PM (#14324406) Homepage
    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!
    • 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 l

      • 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.
  • Two things... (Score:3, Insightful)

    by komodotoes (939836) on Thursday December 22, 2005 @11:38PM (#14324417) Homepage
    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... (Score:5, Informative)

      by imemyself (757318) on Thursday December 22, 2005 @11:54PM (#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.
      • 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.
    • I guess you better sit down before you hear how much support costs. :)
    • Re:Two things... (Score:4, Insightful)

      by kpharmer (452893) on Friday December 23, 2005 @12:23AM (#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.
    • 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.
  • by JanusFury (452699) <kevin.gaddNO@SPAMgmail.com> on Thursday December 22, 2005 @11:38PM (#14324421) Homepage Journal
    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.
    • 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...
    • 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.

      I don't usually get involved in these discussions, because it's just armchair politics. But look -- I'm an employee for a highly successful company [zappos.com] built on top of MySQL, and it works great. Hundreds of tables, many with hundreds of millions of rows. Our primary DB averages over 1200 queries per second (yes, that's an average
  • by xxxJonBoyxxx (565205) on Thursday December 22, 2005 @11:41PM (#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.

  • by ThinkFr33ly (902481) on Thursday December 22, 2005 @11:43PM (#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.
    • 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.
    • 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
      • 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 vi
  • Not surprising (Score:3, Informative)

    by aiken_d (127097) <brooks@tangenBLUEtry.com minus berry> on Thursday December 22, 2005 @11:43PM (#14324451) Homepage
    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 (Score:5, Informative)

      by MBCook (132727) <foobarsoft@foobarsoft.com> on Friday December 23, 2005 @12:04AM (#14324538) Homepage
      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.
  • by aapold (753705) * on Thursday December 22, 2005 @11:50PM (#14324483) Homepage Journal
    the money you can get paid as a DBA for each type of database...
  • 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 do
  • OMG (Score:5, Informative)

    by mitcharoni (222957) on Friday December 23, 2005 @12:13AM (#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.
  • by Yonder Way (603108) on Friday December 23, 2005 @12:13AM (#14324577)
    ...leaving out PostgreSQL was a glaring omission.
  • Sick and Tired (Score:5, Insightful)

    by vectorian798 (792613) on Friday December 23, 2005 @12:14AM (#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.
  • by kpharmer (452893) on Friday December 23, 2005 @12:15AM (#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, cp
    • I think your point 3 under future proofing (ANSI compliance) points out how slanted the review was.

      On the spec page for MS SQL Server Express they said it had "Basic" ANSI support. Sounds kind of crappy, huh?

      For MySQL, which doesn't even have basic support they wrote, "Extended subset of SQL-99, plus SQL-99 and SQL:2003 features." Sounds a lot better, doesn't it? It's not. It's a mis-mash or standard and non-standard bits versus Microsoft's basic support of the standard.

      It's a sad state of affairs

  • by Anonymous Coward on Friday December 23, 2005 @12:16AM (#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.
  • 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.

  • 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/p
  • by dbucowboy (891058) on Friday December 23, 2005 @12:29AM (#14324646) Homepage
    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]
    • Yeah, and if you read the article the author also states that they really didn't feel they needed tranactions, and later implemented a transaction manager themselves (I am sure THAT is really robust LOL). To me this sort of story utterly destroys any credibility. These guys are rank amatuers with no trace of a clue abut what they are doing.

      Trying to port a ridiculous application like this to 'real' database (I'm assuming Oracle) is going to be painful at the best - MySQL is not standards compliant in any wa
  • by JDAustin (468180) on Friday December 23, 2005 @12:52AM (#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.
  • Lab test? (Score:5, Informative)

    by heinousjay (683506) on Friday December 23, 2005 @01:08AM (#14324792) Journal
    Lab test? What test? This was a list of features from the product documentation. What a disingenuous title.
  • by darylb (10898) on Friday December 23, 2005 @01:20AM (#14324837)

    Give me a break. This guy has reviewed databases on the basis of features, with, as far as I can tell, not a single real performance evaluation in different kinds of applications (OLTP, DSS, data warehouse), data volumes, or query complexity.

    It gets better. In discussing Oracle, he explains: That is not to say the other databases serve up incorrect data but with some database engines when the workload is high, uncommitted data can be flushed from buffers to disk potentially creating a dirty read. MVRC also ensures that readers do not block writers and visa versa. HUH? I can't speak for EVERY database out there, but for most of them, you'd have to specifically set a "read uncommitted" isolation level to actually read dirty data. The majority of the databases would simply give a lock-and-block situation while the second reader waits for the writer to complete. Oracle's MVRC (and PostgreSQL's scheme) both prevent this lock-block situation. But, really, to say that this would potentially create a dirty read situation is just silly.

    He also didn't speak of Oracle's new Express Edition. Yeah, it's limited to 1 CPU and has a cap on its data volume, but you get all of Oracle's core features (including PL/SQL) for FREE.

    Nothing to see here, folks. Just move along.

  • Good freakin god (Score:5, Insightful)

    by xant (99438) on Friday December 23, 2005 @03:11AM (#14325165) Homepage
    Can we get over mysql already? Even sqlite is a better, and faster, database now. It's ACID, which mysql is not: http://www.sqlite.org/lockingv3.html [sqlite.org]

    And Postgresql is far more robust and performs just as well.

    What does mysql offer any more that the other OSS databases don't? Is it just that it's the M in LAMP? I'm so tired of hearing about Mysql, and all the Mysql drama, when it's just a shitty database that has a lot of mindshare.
    • Re:Good freakin god (Score:5, Interesting)

      by sootman (158191) on Friday December 23, 2005 @11:12AM (#14326487) Homepage Journal
      And I'm equally tired of hearing from MySQL haters who bitch and bitch and bitch about how MySQL isn't worth shit and should never be used for anything, anywhere, ever. Need I remind you that the very site you're looking at runs on MySQL and handles literally millions of pageviews per day? OK, fine, I won't. How's this then: hundreds of the 33,000 employees where I work rely on MySQL daily, whether they know it or not. Phone lists, surveys, reporting apps, inventory databases, etc etc etc. MySQL does the job and does it just fine. It has not failed me once in all the years I've been using it.

      And SQLite is better? Because it's ACID? HA! HA HA HA HA HA! GIVE ME A FUCKING BREAK! That's the only buzzword it IS compliant with. Look at this:

      Q: SQLite lets me insert a string into a database column of type integer!
      A: This is a feature, not a bug. SQLite does not enforce data type constraints. [emphasis added]

      and this:

      Q: What is the maximum size of a VARCHAR in SQLite?
      A: SQLite does not enforce the length of a VARCHAR. You can declare a VARCHAR(10) and SQLite will be happy to let you put 500 characters in it. And it will keep all 500 characters intact - it never truncates.

      and this:

      Q: Does SQLite support a BLOB type?
      A: SQLite versions 3.0 and leter let you puts BLOB data into any column, even columns that are declared to hold some other type.

      all this and more can be seen at http://www.sqlite.org/faq.html [sqlite.org]

      "And Postgresql is far more robust and performs just as well."

      And only recently ran natively under Windows. Sorry, but when you're in a company with 33k employees and a substantial IT department, you don't always get to pick your platform. MySQL was there, it worked, and it continues to do so. Why would I switch?

      Let me make the required car analogy: a semi is several orders of magnitude more powerful than a 2WD pickup truck. A semi can haul more, and haul more further, and haul big loads more efficiently, and with a sleeper cab and two drivers can operate 24/7, and you can get refrigerated units to move food, etc etc etc. Why, then, are there millions of 2WD pickups sold? Are they just "shitty vehicles with lots of mindshare"? NO! It's because 99.9% of the population just wants to move a couch or go to Home Depot or something. Maybe it'll take a few trips to help a friend move, but even that takes fewer hours than getting a class-whatever license, plus pickups are easier to maneuver and park in apartment complex parking lots and residential neighborhoods, etc etc etc.

      I'm not saying MySQL is better than everythinhg else. The fact is, databases and computers are SO capable now that even the WORST in the field is STILL more than 99% of people need. In other words, MySQL is Just Fine.

      PS: MySQL is ACID when used with InnoDB tables which came out about 3 years ago. [google.com] Time to update your troll.
  • Horses for Courses (Score:5, Informative)

    by 16K Ram Pack (690082) <(moc.liamg) (ta) (dnomla.mit)> on Friday December 23, 2005 @05:56AM (#14325533) Homepage
    The article doesn't deal with some of the other strengths/weaknesses.

    If you want to distribute MySQL with your application to a customer, you have to pay a license fee. That means that for many people, MS SQL Express may be better.

    If I wanted to do some complex database logic, I'd probably consider MS SQL Express, as stored procedures on MySQL haven't been out there for long.

    If you are building a database to go on low-cost LAMP hosting, MySQL does the job well.

    For a piece of shareware requiring a small database, something like SQLLite is probably better than these options.

  • Rigged test (Score:4, Insightful)

    by d_jedi (773213) on Friday December 23, 2005 @06:02AM (#14325542)
    Comparing the free offering of SQL Server to the full version of mySQL is just about as biased a comparison as Microsoft's "Get the facts" campaign..
  • by tweek (18111) on Friday December 23, 2005 @08:57AM (#14325903) Homepage Journal
    that this is a terrible review, there really isn't much option for the average site.

    Have you checked the licenses on Oracle for instance. If I remember correctly, the commercial license prevents publications of benchmarks without approval from Oracle.

    Having said that, if *I* were supreme overload of database comparisons, here's what I would do:

    - Decide on a reference hardware platform in both 32 and 64 bit. I would also include a non-x86_64 hardware platform such as pSeries. Of course this will limit the SQL Server tests but that's Microsoft's own choice.

    - Also decide on a common disk layout for the databases. Many commercial databases and even PostgreSQL will perform poorly out of the box on a flat disk layout. Seperate index, data and logs on unique volumes. If you decide to go RAID5 for any LUN, stick at least 6 disks under that LUN. RAID1 for log files. You also need to decide on which filesystem you want to use. This all of course determines which OS you use. I'm assuming Linux in this scenario. Most PostgreSQL recommendations I've seen recommend XFS on RAID10 but RHEL and SUSE don't include XFS support without going unsupported with the vendor in a kernel recompile.

    - Bring in a skilled DBA for each product. It shouldn't be too hard to find someone who wants to get published in his respective product.

    - Provide no OS tuning except the defaults recommended by the manufacturer of the database. OS tuning varies from vendor to vendor. Some suggest SHMMAX to be one setting while others suggest another number. You can't compare apples to apples when you've tuned I/O at 64k blocks for DB2 and 128K for Oracle (not that you would for either).

    - Test all workloads. You may notice that some vendors provide a different product configuration for DSS, OLTP and OLAP. Some vendors even provide a different version of the product for a specific workload.

    - Use the same DDL where possible. Really think about this for a moment. Alot of tests I've seen determine raw select, raw insert and raw update speeds but don't take into account the complex DDL that most business have. Take our layout for instance:

    1) We have an OLTP system.
    2) It also has a schema for OLAP that is populated by triggers from the OLTP tables.
    3) We load our warehouse off of the denormalized tables and also provide the OLAP functions within our application from those tables. (Our warehouse is updated each morning but we have a requirement in the application for realtime data for the current business day)

    Now with those above requirements, INSERT and UPDATE are going to perform much slower than what a raw benchmark would tell me and IMHO is much more indicative of real world design.

    - Note which "levers" you have available to pull. With DB2, I can put specific tables on different LUNs via tablespaces. I can also assign tables and indexes to different bufferpools. Quite honestly, I can't do any of that with MySQL (well with InnoDB I can via some symlink madness). I can accomplish the tablespaces option with PostgreSQL but not the unique bufferpools for certain tablespaces or indexspaces.

    - Also note what maintenance is required to actually keep the database performing. REORGs in DB2. VACs in PGSQL. I can update and insert 10mil rows to DB2/MYSQL/PGSQL but what happens when I need to go back and select out those rows? This leads to the next test:

    - Test the optimizer! This is probably the biggest thing for me. How does the optimizer determine which access path to take? What factors influence that? I would not intentionally write shitty SQL but developers aren't DBAs. They don't normally concern themselves with the BEST path or even the quickest path to the data as long as they get the data they need. Don't talk to me about OR functions or LEFT OUTER JOINs that I've seen spit out by ORM products or worse yet SELECT * and doing the logic in the application. Run EXPLAIN plans on all queries you're testing. In the end, the optimizer is the biggest factor in the database per

% APL is a natural extension of assembler language programming; ...and is best for educational purposes. -- A. Perlis

Working...