Slashdot Mirror


MySQL 5.0 Candidate Released

Brian "Krow" Aker (Former Slashdot Coder now MySQL Employee) writes "I am pleased to announce the release candidate for MySQL 5.0. This version has been in development now for three years. We have worked to add update-able views, ansi stored procedures, and triggers. In addition we have added a number of fun features that we are experimenting with and resolved issues with bad data inserts (which personally annoyed the hell out of me when we rewrote Slashdot a couple of years back so I am happy to see this issue go away). We look forward to feedback on the candidate and will show some love for bug reports."

84 of 339 comments (clear)

  1. Time for new comparisons to be made. by CyricZ · · Score: 4, Interesting

    It's time for somebody to do a new, impartial study regarding the performance and feature benefits of this new release of MySQL, PostgreSQL, Firebird, SQLite, and perhaps other open-sourced relational databases.

    --
    Cyric Zndovzny at your service.
    1. Re:Time for new comparisons to be made. by KiloByte · · Score: 2, Insightful

      And of course you can't include Oracle in any impartial study.
      Hmm... do I smell... fear?

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    2. Re:Time for new comparisons to be made. by RealityMogul · · Score: 2, Funny

      Call up Microsoft, I'm sure they'd love to sponsor the study.

    3. Re:Time for new comparisons to be made. by schon · · Score: 2, Informative

      Correct. If you're measuring performance, then you *can't* include Oracle.

    4. Re:Time for new comparisons to be made. by tdemark · · Score: 5, Interesting

      And of course you can't include Oracle in any impartial study.

      You could, except for the fact that the license you just paid thousands per CPU for doesn't allow you to publish the results.

    5. Re:Time for new comparisons to be made. by ceeam · · Score: 3, Interesting

      But puhhhlease, don't put MySQL performance based on MyISAM and feature set based on InnoDB! Stick to either one. BTW - last I checked for myself, Firebird was beating _even_ MyISAM for raw speed on simple queries for local engine. Something I did not expect. Oh, yeah! When comparing performance please include results for local engine AND over-the-LAN performance. Different beasts have different protocol issues that show up when using "real" LAN and may be masked when using "local" engine mode. For example, MySQL has very simple and LAN-friendly protocol. Unlike Firebird, but it's still ok. And MSSQL, EG, has very, very serious issues when used for lots of "simple" queries.

    6. Re:Time for new comparisons to be made. by ajs · · Score: 4, Informative
      From the linked article,
      "The standard Oracle license agreement normally prevents users from publishing benchmark results." -http://www.orafaq.com/faqora.htm#SPEED
      Clear enough?
    7. Re:Time for new comparisons to be made. by awol · · Score: 2, Interesting

      Easy just report;
              Performance Prettiness Completeness
      1. MySQL Firebird Postgress
      2. Postgress MySQL
      3. Postgress Firebird
      4. Firebird MySQL
      5. ... ... ...

      Then oracle has no problems with the report since you are _not_ reporting anything about them.

      --
      "The first thing to do when you find yourself in a hole is stop digging."
    8. Re:Time for new comparisons to be made. by Matt+Perry · · Score: 2, Funny

      The solution to that is simple. Include Oracle and put it dead last in every category. Explain that the license doesn't allow testing so therefore it didn't even get out of the gate in the tests.

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
  2. Is it a "real" database yet? by digidave · · Score: 4, Interesting

    Every time any database is mentioned on Slashdot we get a load of comments about how MySQL is not a "real" database because it doesn't support {insert random feature here}.

    Is it a real database yet?

    --
    The global economy is a great thing until you feel it locally.
    1. Re:Is it a "real" database yet? by mmkkbb · · Score: 3, Informative

      Actually, most of those features are in MySQL 4. The two big problems are: Lots of people still run MySQL 3.x, and these features only work for certain table types.

      --
      -mkb
    2. Re:Is it a "real" database yet? by codesurfer · · Score: 5, Interesting

      I'd say so...despite the detractors, I've been able to use MySQL for many highly trafficed sites, and heavily used applications. Does it have the full robustness of Oracle? Of course not, but it also does not come with the accompanying price tag. Choice of db software is just that...a choice. I can envisage situations in which I may prefer having Oracle, but to be honest, MySQL addresses most day to day situations more than adequately. It's a real db, IMO.

    3. Re:Is it a "real" database yet? by LLuthor · · Score: 3, Insightful

      MySQL selects do not use indexes when there are sub-selects most of the time. This makes them practically useless unless you can re-factor the query to use a convoluted join instead.

      Sub-selects suck in mysql compared to postgresql or oracle. I havent used other DBs much so I don't know how well they perform.

      --
      LL
    4. Re:Is it a "real" database yet? by Anonymous Coward · · Score: 3, Insightful

      I cannot trust MySQL to store data reliably until the MySQL give a clear explanation as to why they made decisions that no competent database developer would ever make.

      For example, you have a constraint limiting a column to a maximum of 99. You attempt to enter 999 as a value, and it got silently altered to 99. Not only is it against SQL standards, it's also completely and utterly the opposite of common sense.

      Just once, I'd like to hear a MySQL developer say "yeah, I don't know what we were thinking, that's a really fucked up thing to do". It doesn't matter whether this intentional bug got fixed, what matters is that there are MySQL developers that thought that this was a reasonable thing to do.

      That's not an isolated incident, either. There are reams and reams of utter idiocy along exactly those lines. So really, what would it matter if they've fixed those particular instances? How do I know they haven't introduced a dozen more breakages along those lines? So far, they haven't shown any indication that they even realise how fucked up that is - so why on earth would I trust them with data that matters?

    5. Re:Is it a "real" database yet? by Anonymous Coward · · Score: 2, Insightful

      I looked up "graceful degradation" and it didn't have anything at all to do with the subject at hand. Allowing malformed or errnoenous data to be inserted into a table which has been expressly defined to disallow data in that size, shape or form is totally broken behavior. For a database to accept such data is neither graceful nor is it degredation.

      I suppose you'd also argue that it's a bad idea for the Diesel and Petrol gas pump nozzles to be different sizes, because it should be possible to accidently pump diesel into your petrol-burning car. After all, isn't it better to get /something/ into the tank, even if it's the wrong fuel?

      No, rather, I'd expect you might consider the different sized nozzles to be a wise safeguard against the unavoidable human errors which would otherwise occur. Similarly, being able to enforce data integrity at the most logical layer -- the database -- is also a wise and necessary component of any database system which expects to be taken seriously.

    6. Re:Is it a "real" database yet? by FatherOfONe · · Score: 2, Interesting

      People have mentioned in a few other posts that DB2 is "only" $700. People then mention that MySQL is $500. I would argue that this isn't the case. I would say that MySQL and PostgreSQL are free and DB2 starts at $700, but that cost is just the beginning. What happens if you run a processor with multiple cores? How much does it cost if you migrate off of X86 to Sparc? How much if you want to run it on one of their mainframes? It is my experience that Oracle and IBM tend to "give" away some of their products, but they do that to hook you in to the upgrades. In short, IBM and Oracle are not stupid companies and they want nothing more than to get their hooks in to your company. Given that the database is generally the cornerstone of the companies data, it is a great place for them to start. Then when your company "needs" a feature that isn't supported in the "standard" package the cost will go WAY WAY WAY up.

      This isn't the case with PostgreSQL or MySQL. You never get that "drug pusher" type of attitude.

      --
      The more I learn about science, the more my faith in God increases.
    7. Re:Is it a "real" database yet? by ShieldW0lf · · Score: 2, Insightful

      This isn't the case with PostgreSQL or MySQL. You never get that "drug pusher" type of attitude.

      Are you kidding? MySQL is TOTALLY a "get our hooks in drug pusher" kind of company. They're the "Project Mayo" of the DB world. Their development/business model revolves around getting everyone onboard with the open source version and then exploiting the open source development community with their policy that copyright to patches and improvements must be transfered to MySQL so they can then be sold closed-source.

      And on top of all that, their product sucks. Good enough for internal content management or a free forum perhaps, but hardly something you'd trust with important data. They obviously agree, or they would have stuck to developing their existing codebase rather than using SAPs.

      Why do people spend so much time cheerleading for these guys?

      --
      -1 Uncomfortable Truth
    8. Re:Is it a "real" database yet? by jpkunst · · Score: 2, Informative
      From http://www.mysql.com/news-and-events/news/article_ 959.html
      Implementing ANSI SQL standard ways of using existing MySQL features means there will be fewer unpleasant surprises ("gotchas") for those migrating to MySQL from other database systems:
      * Strict Mode: MySQL 5.0 adds a mode that complies with standard SQL in a number of areas in which earlier versions did not; we now do strict data type checking and issue errors for all invalid dates, numbers and strings as expected

      Can we now finally retire that tiresome "MySQL gotchas" link? Please?

      JP

  3. Add bloat, stay fast by jurt1235 · · Score: 2, Interesting

    I welcome stored procedures triggers very much, as long as they are fast enough to compete with the current "just program it yourself in you chosen language" style. Anyway: Another stored procedure language to learn.

    --

    My wife's sketchblog Blob[p]: Gastrono-me
    1. Re:Add bloat, stay fast by Dan+Ost · · Score: 2, Informative

      In PostgreSQL, you can write your stored procedures in
      Python, Perl, and a couple of other languages. It probably
      won't be too long before MySQL allows the same thing. With
      any luck, you won't need to learn a new language at all.

      --

      *sigh* back to work...
    2. Re:Add bloat, stay fast by DrXym · · Score: 2, Interesting
      Unless every single app you connect to the DB contains trigger-like code and you don't expect your users to abuse or circumvent the trigger-like code, I fail to see why you would not want them.

      As for stored procedures, I thought the whole point of them is that they are precompiled and live on the server side. Not only does this make them faster but you can change or modify the stored procedure without having to change the client code. Again, what's the point of not wanting them?

      Is there any evidence to suggest that "just program it yourself" on the client side would be any more efficient? It seems to me that sending a large chunk of SQL over the wire, parsing / validating it, compiling it, and executing it must be for any sane DB slower than a stored proc.

  4. How does the source code quality compare? by CyricZ · · Score: 2, Interesting

    How does the source code quality of this new release of MySQL compare to that of projects like PostgreSQL or Firebird, which have a far longer history and/or were formerly commercial developments?

    --
    Cyric Zndovzny at your service.
    1. Re:How does the source code quality compare? by JohanV · · Score: 4, Informative

      How do you want it to compare?

      Source code quality is not easy to compare. At a first glance, MySQL is doing very good. They have this nice blurb about only having 1 defect in 4000 lines being more then 4 times better then with most commercial software. But if you dig deeper, you notice that PostgreSQL has been tested by the same company and only had 1 defect in every 39000 lines of code. Wow, so PostgreSQL must really be a lot better then MySQL.
      But if you dig even deeper, you will find some explanation from a PostgreSQL developer and you remember what your mother told you about lies, damned lies and statistics.

      You want to know about source code quality? Go read the source.

  5. Anyone know of a good free MySQL GUI? by lion2 · · Score: 2, Interesting

    Something that is comparable and as easy to use as SQL Servers Enterprise Manager. The tools available on MySQL's site aren't very good. My main concern is easy importing and exporting to and from Microsoft Access. For example I can just copy records from access and easily paste them into SQL Server. Thanks for the help.

    1. Re:Anyone know of a good free MySQL GUI? by Chagrin · · Score: 3, Informative

      Use the MyODBC driver. Link the tables with Access and cut and paste all you want.

      --

      I/O Error G-17: Aborting Installation

    2. Re:Anyone know of a good free MySQL GUI? by Anonymous Coward · · Score: 3, Informative

      Aqua Studio is very good (http://www.aquafold.com/) links to most different db types as well as standard ODBC

    3. Re:Anyone know of a good free MySQL GUI? by JohnnyBigodes · · Score: 3, Informative

      Sorry about the "free" part, but Navicat is the best MySQL interface that I've seen to date, and I've tried quite a few (not all of them, obviously :)

    4. Re:Anyone know of a good free MySQL GUI? by minus_273 · · Score: 2

      EMS MySQL Manager 3 Lite is by far the best

      --
      The war with islam is a war on the beast
      The war on terror is a war for peace
    5. Re:Anyone know of a good free MySQL GUI? by FlopEJoe · · Score: 2, Informative
      Aqua Studio is some good stuff. I haven't used it for MySQL but it's an option when registering a new database. Aqua is available "for personal use only" so not quite "free."

      OS: Windows, Linux, OSX, Solaris

      RDBMS: Oracle, DB2 UDB, MS SQL Server, Sybase, Informix, Postgresql, MySQL

    6. Re:Anyone know of a good free MySQL GUI? by pvera · · Score: 3, Informative

      Please mod up parent. Aqua Data Studio is a very damn good application, and the developer is extremely responsive. It is common to have him hang out in the support newsgroup for hours at a time, walking people thru things even if it is obvious they are too lazy/dumb/etc. to follow the documentation and FAQs. Between Aqua Data Studio (which btw runs on pretty much anything that can run Java) and phpMyAdmin, you should be able to do almost 99% of whatever it is that you need. The other 1%? RTFM and use the CLI.

      As for the SQL Server Enterprise Manager, it was a turd in 6.5, less of a turd in 7.0 and then got worse in 2000. The improvements added to Enterprise Manager for the jump from 7 to 20000 were pretty damn good, but they are offset by bullshit mickey mouse Jscript interface errors that have no place in a database management application. This sucks because the SQL Server Query Analyzer only got better and has none of these weird Jscript issues.

      For those of you stuck in the Oracle world (and cursing the Oracle provided tools), you may want to check out Benthic (http://www.benthicsoftware.com/), they have been publishing very nice and inexpensive shareware apps that work more or less like the SQL Server Enterprise Manager and the Query Analyzer.

      --
      Pedro
      ----
      The Insomniac Coder
    7. Re:Anyone know of a good free MySQL GUI? by j3tt · · Score: 2, Informative

      The preview version of Toad for MySql is decent enough. (This assume though that you're using 'doze) http://www.toadsoft.com/toadmysql/toad_mysql.htm/

  6. Re:SCO by jurt1235 · · Score: 2, Interesting

    Can we trust HP (linux everything campaign) while they are strategic SCO partner?
    Can we trust Oracle (Linux is our main development platform) while they are strategic SC partner?
    And many many more.
    Maybe we can even find the website of a dictatorship using MySQL, oh.

    --

    My wife's sketchblog Blob[p]: Gastrono-me
  7. Examine t he license carefully!! by scorp1us · · Score: 5, Informative
    After the 3.x series, the license changed drastically. Of course you won't find this discussed much. The permitted uses of MySQL as GPL are significantly reduced. You can only use MySQL in conjuction with OSS. Previously, you could use MySQL in a non-GPL environment under several permissive conditions. The new license is so restrictive now that a special exception is made for PHP

    Specifically:

            * MySQL is free use for those who are 100% GPL. If your application is licensed under GPL or compatible OSI license approved by MySQL AB, you are free to ship any GPL software of MySQL AB with your application ('application' means any type of software application, system, tool or utility). You do not need a separate signed agreement with MySQL AB, because the GPL license is sufficient. We do, however, recommend you contact us as there usually are good opportunities for partnership and co-marketing.


            * Under the Open Source License, you must release the complete source code for the application that is built on MySQL. You do not need to release the source code for components that are generally installed on the operating system on which your application runs, such as system header files or libraries.


            * Free use for those who never copy, modify or distribute. As long as you never distribute the MySQL Software in any way, you are free to use it for powering your application, irrespective of whether your application is under GPL license or not.


            * You are allowed to modify MySQL Software source code any way you like as long as the distributed derivative work is licensed under the GPL as well.


            * You are allowed to copy MySQL binaries and source code, but when you do so, the copies will fall under the GPL license.


            * Optional GPL License Exception for PHP. As a special exception, MySQL AB gives permission to distribute derivative works that are formed with GPL-licensed MySQL software and with software licensed under version 3.0 of the PHP license. You must obey the GNU General Public License in all respects for all of the code used other than code licensed under version 3.0 of the PHP license.


            * FLOSS License Exception. We have created a license exception which enables Free/Libre and Open Source software ("FLOSS") to be able to include the GPL-licensed MySQL client libraries despite the fact that not all open source licenses are compatible with the GPL (this includes the PHP license version 3.0). Read more about the FLOSS License Exception.



    Considering the new license and still lacking features, there is little reason to use MySQL. Postgres has "all that anda bag of potato chips."

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    1. Re:Examine t he license carefully!! by Scarblac · · Score: 4, Interesting

      In short:

      • If you don't distribute MySQL, you're under no restriction whatsoever
      • If you do want to distribute, MySQL is GPL
      • Besides, MySQL goes out of their way to give you even more freedom to distribute it if you want to bundle it with stuff that has one of several incompatible licenses

      Sounds good to me!

      --
      I believe posters are recognized by their sig. So I made one.
    2. Re:Examine t he license carefully!! by T-Ranger · · Score: 3, Insightful
      Under the Open Source License, you must release the complete source code for the application that is built on MySQL

      Well, I suppose that is a question of semantics. I would say that if you take MySQL had hack it, relese it as BobSQL, then this applies - BobSQL is built with MySQL. If you write a recepie organizer that uses MySQL, then you need to do nothing.

      Read more about the FLOSS License Exception.

      What is the problem? MySQL has a client library, which is released under the GPL. Generaly, if you want to use and distribute MySQL client libraries, you also need to release whaterver is yours as GPL. If its commercial, you can always buy a license from MySQL AB. For other OSS project this may be unacceptable - and for PHP it was, for example. So provided that these other OSS projects conform to specific guidelines, they are free to distribute the client libs.

      You always, always, have the option of using MySQL in a non OSS enviroment. Buy a license.

      I cant see how their license plan could be any more friendly, unless they switch to a BSD style license. Want to just use it? Knock yourself out. Want to hack on it and continue to release it under the GPL? Knock yourself out. Want to release it with another, non-GPL, OSS license? Knock yourself out. Want to not release the source? Buy a license.

    3. Re:Examine t he license carefully!! by OneFix+at+Work · · Score: 2, Insightful

      The key paragraph here is this one:

      * Free use for those who never copy, modify or distribute. As long as you never distribute the MySQL Software in any way, you are free to use it for powering your application, irrespective of whether your application is under GPL license or not.

      So, unless you actually distribute/modify/copy MySQL, then you are free to do whatever you want with the database.

      This is actually why some of the newer Linux distros don't include a version of MySQL with the OS...it's offered as a seperate RPM/DEB/PKG/etc...

      Nothing has changed...this doesn't mean that you can't write an app that uses MySQL and release it under a LGPL/BSD/Proprietary license...as long as you aren't modifying the code in MySQL, then you're fine.

      Postgres may have a few things going for it over MySQL, but license is not really one of em...

    4. Re:Examine t he license carefully!! by jadavis · · Score: 4, Insightful

      If you do want to distribute, MySQL is GPL

      The problem is that the client library is GPL, not LGPL as one might expect.

      That means that any application that you distribute that can access a MySQL database must be linked against the MySQL library, which is GPL, forcing your application to be GPL.

      Most people don't consider adding MySQL support to their application to be "distributing MySQL".

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    5. Re:Examine t he license carefully!! by martenmickos · · Score: 2, Informative


      Yes, please examine the licence carefully, and you will notice that MySQL is friendly to all major open source licences.
       
      Thanks to the GPL and our own FOSS Exception, you can mix and match MySQL with other open source software even when the licence texts would otherwise be legally incompatible.
       
      The only time you need to be aware of our licensing is when you blend some closed source code into the FOSS stew. And for those situations we can offer a commercial licence.
       
      I think it is fair to say that MySQL AB has listened carefully to the feedback from the community and made adjustments to licensing and other practices with the aim to promote the freedom of software. Would you agree? I am keen to hear your viewpoints.
       
      Marten Mickos, CEO, MySQL AB
       
      P.S. FOSS = Free and Open Source Software

    6. Re:Examine t he license carefully!! by Haeleth · · Score: 2, Insightful

      That means that any application that you distribute that can access a MySQL database must be linked against the MySQL library, which is GPL, forcing your application to be GPL.

      No it doesn't. The FLOSS License Exemption means that your application is not forced to be GPL if it uses any of 20 of the most popular free software licenses. The exempt licenses include the LGPL, the MIT and BSD licenses, the Mozilla license, the licenses for Perl, PHP, and Python... and the list goes on. In other words, the vast majority of free or open source software is able to link to the MySQL client library without being forced to change its license to the GPL.

      This is a significant relaxation of the regular GPL terms. It even makes explicit allowances for users of the BSD license, the group that traditionally dislikes GPL software the most.

      The only people who can complain about the MySQL licensing policy are freeloaders who want to benefit from free software without giving anything back to the developers or the community. You will, I trust, forgive me if I don't weep for such people.

  8. MySQL 3 - MySQL 5 by Scoria · · Score: 3, Interesting

    I certainly have to give them credit for one thing. The MySQL developers have been subjected to some very harsh criticism over the years, but few would accuse them of ignoring it.

    It impresses me that they actually seem to be listening.

    --
    Do you like German cars?
    1. Re:MySQL 3 - MySQL 5 by Overly+Critical+Guy · · Score: 2, Insightful

      The MySQL developers have been subjected to some very harsh criticism over the years, but few would accuse them of ignoring it.

      Then why did they dismiss all the criticism in the MySQL 3 manual, even claiming the features make databases more complex and aren't needed? Some of those features are now in MySQL 4.1 and 5 despite their earlier dismissal by MySQL's developers.

      --
      "Sufferin' succotash."
  9. I think you miss the point by Fished · · Score: 5, Informative
    The point is not whether MySQL is a "real" database. Clearly, it is a real database that is capable of doing real work.

    The point is that, even in recent versions, MySQL has some serious limitations that other OSS databases (e.g. PostgreSQL) do not suffer from, and no really significant corresponding advantages. MySQL was not designed from the ground up to be many things it is now trying to be--it was not designed to support transactions, it was not designed to support foreign keys, it was not designed to support stored procedures. It was initially conceived as a small, fast database for managing very large datasets in a warehousing sort of role. PostgreSQL, on the other hand, was always conceived of as being a heavier-duty database, and this shows in terms of feature completeness and SQL standard compliance.

    Given that the performance differential (which was always overstated) has been overcome, why would you want to go with MySQL only to discover what the latest feature to be missed was? What's the advantage to MySQL?

    --
    "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
    1. Re:I think you miss the point by should_be_linear · · Score: 2, Interesting

      I can tell you what MySQL advantege over PostgreSQL and Firebird was *for me*:
      1) Easy to install in Windows. PostgreSQL is (AFAIK) goof _now_ but was not then. Firebird was/is OK in this area.
      2) "Spatial" type/index, Fulltext index. Postgis is available for PostgreSQL but as plugin, not out-of-the-box, fulltext is (AFAIK) beta and not very unicode-reliable. I prefer both things to be integrated as I distribute DB engine with my SW. Firebird miss spatial type (just as MS SQL, for example (!)) so it is useless for me.

      One thing where MySQL suck is mingw (gcc) support on windows. If you need to connect from C/C++ in windows, use MS VS, otherwise you wil suffer.

      --
      839*929
    2. Re:I think you miss the point by kpharmer · · Score: 3, Informative

      > InnoDB supports the features you mentioned, and that I quoted, so why is that less desireable than having the table handler builtin?

      Because it is core functionality.

      Having a separate product responsible for managing io may be one of the reasons that mysql's optimizer is so primitive - and may be a reason why they will struggle to improve it. Note: the optimizer is the component responsible for determination of how your joins will be performed under the covers - mysql is notorious for failing to use indexes it should, using indexes when it shouldn't, never using star-joins, five-way joins that day 10x as long as they would in any other database, etc.

      Perhaps it's also why views took forever to implement, and materialized views might take another forever.

      It's also perhaps the reason for all the inconsistencies in table creation.

      There are also benefits to using innodb - it has undoubtably speed up mysql's development by several years. Still, now it's a boat anchor that should be abandoned.

      > For me, the massive community is a big plus. A rich set of tools is another advantage.

      yep, although it may be the only advantage that mysql has, it's a huge one.

    3. Re:I think you miss the point by Cyn · · Score: 2, Insightful

      Your argument has a weak point - there's no reason why you couldn't instead embed a BSD licensed DBMS in a GPL application. It wasn't going GPL that 'empowered' these developers. BSD licensing has no restrictions other than a credit line.

      I'm not saying the rest of your points aren't valid - but saying that MySQL is where it is today because it was GPL just doesn't fit. I think it's where it is today because it started out dead simple, and people latched onto that - just like PHP.

      --
      cyn, free software and *nix operating systems enthusiast.
    4. Re:I think you miss the point by Kainaw · · Score: 2, Informative

      Given that the performance differential (which was always overstated) has been overcome

      Do a side-by-side comparison on your own data. For me, the performance differential has not been overcome. In MySQL, my reports take about 10 minutes to run. In Postgres, they take 3-4 days. When I mentioned this to our local Pg-fanboys, they came in, gave Postgres its own dual-processor server, extra ram, changed my column datatypes, made a slew of indexes, and reduced the report time from 3-4 days to 3-4 hours. I agree that optimizing Postgres will speed it up a great deal, but without spending a couple weeks optimizing MySQL, I had an acceptable report generation time.

      However, on a separate project, I required features that were not in MySQL. So, I used Postgres. Speed was not an issue. In my opinion, this all has to do with the purpose. In the project I mentioned first, we have a data warehouse - shove junk in and make massive reports on it. In the second, we are working with the data on a daily basis. I am not surprised that one database engine works better for one purpose and another works better for another purpose.

      --
      The previous comment is purposely vague and generalized, but all of the facts are completely true.
    5. Re:I think you miss the point by Decibel · · Score: 2, Insightful

      Clearly, it is a real database that is capable of doing real work.

      I disagree. A real database wouldn't allow this:

      CREATE TABLE t(t tinyint);
      INSERT INTO t VALUES(300);
      SELECT * FROM t;

      You really meant 127 and not 300, right?

    6. Re:I think you miss the point by jadavis · · Score: 2, Insightful

      TSearch2 is a full text search module for PostgreSQL that has been available for a long time. It's stable and not in beta.

      What's wrong with modules? They're great. It means that you can upgrade TSearch2 or some other module without waiting for the next release of PostgreSQL. It's not difficult at all to install the modules, just copy some files and run a SQL file.

      I think that PostgreSQL making use of it's extensibility by forcing some functionality out into modules was very successful from a technological standpoint, a release process standpoint, and a user's standpoint. However, it certainly was a marketing failure. Now everyone thinks PostgreSQL is missing those features. PostgreSQL has never been known for it's marketing abilities.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    7. Re:I think you miss the point by moof1138 · · Score: 2, Funny

      I don't want to start a holy war here, but what is the deal with Postgres performance? I've been sitting here at my freelance gig in front of a 4 way Xeon box running Postgres for about 20 minutes now while it attempts to do a simple select from a single indexed table with only 300 rows. 20 minutes. At home, with MySQL on my Pentium Pro 200 running NT 4, which by all standards should be a lot slower than this rig, the same operation would take about 2 seconds. If that.

      In addition, during this select, no other queries are accepted. And everything else on the box has ground to a halt. Even 'top' is straining to keep up.

      I won't bore you with the laundry list of other problems that I've encountered while working with Postgres, but suffice it to say there have been many, not the least of which is I've never seen Postgres that has run faster MySQL. MySQL on a 486/66 with 8 megs of ram runs faster than Postgres on a 900 mhz machine at times. From a productivity standpoint, I don't get how people can claim that Postgres is a superior architecture.

      Postgres addicts, flame me if you'd like, but I'd rather hear some intelligent reasons why anyone would choose to use Postgres over other faster, cheaper, more stable database servers like MySQL.

      --

      Hyperbole is the worst thing ever.
    8. Re:I think you miss the point by electroniceric · · Score: 2, Insightful

      Of course you can embed a BSD-licensed DB into a GPL project - the BSD license permits that, along with everything else.

      The point is this: Postgres has existed much longer than MySQL. Yet as the OSS, and particularly GPL, movement caught on, and a large number of OSS apps were produced, MySQL managed to be included in many of them, and Postgres and Firebird did not. I don't really think all that many people sat down and evaluated Postgres vs. MySQL - they just learned about MySQL, heard that it was GPL (a Good Thing), and built their GPL app on it. Had Postgres been easier to set up in those days, would people have used it? I don't know, and nobody can, but I'd guess that MySQL being GPL helped propel it to prominence when Linux was really taking off, and the rest of its success is largely network effects. Given how many shortcomings it had and has, why else would people have preferred it over a more feature-complete BSD-licensed database?

  10. Please stop the MySQL Bashing... by Anonymous Coward · · Score: 4, Informative

    Before all the MySQL bashing starts can we please stop and have an intelligent conversation? The bottom line is that MySQL works great! For all those people who say .. "ya its a kids toy" well look at some of the sites and companies that are using mysql.. "Friendster" , "The Friendfinder network" , "Yahoo!" .. These sites each have millions of active members and are running just fine. Where else can you load up a 50+ database cluster and not have to shell out a fortune on licensing fees? All the developer tools are great!!

    1. Re:Please stop the MySQL Bashing... by ad0le · · Score: 3, Insightful

      Where else can you load up a 50+ database cluster and not have to shell out a fortune on licensing fees?

      PostgreSQL

      --
      My mother never saw the irony in calling me a son-of-a-bitch.
    2. Re:Please stop the MySQL Bashing... by Naikrovek · · Score: 2, Interesting

      Yahoo! does not use MySQL for anything in production, at least they didn't when I was there. Jeremy Z. does work there, so that might have changed, but if you're trying to say that Yahoo! uses MySQL to store user data, or anything associated with a user profile you're dead wrong. UserDataBuckets.

    3. Re:Please stop the MySQL Bashing... by generalpf · · Score: 4, Interesting

      The MySQL guru at Yahoo! -- Jeremy Zawodny -- wrote an O'Reilly book on the different hacks and scrapes they needed to make MySQL perform properly. It's full of anecdotes of MySQL brainf**kery and whatnot. If you consider Yahoo! using MySQL to be an endorsement, try reading High Performance MySQL.

  11. Re:Backups by electroniceric · · Score: 2, Interesting

    Having to dump to a script is both a blessing and curse. For any database that dumps to less than the size of a CD, it's actually very portable, and allows you to clean up your database with substantially more ease than a binary format. The curse of course is that you can't just reattach your binary backup and have the database go again. Also, since 8.0, Postgres has had a binary backup format, and has done a thorough job resolving dependencies (a really nuisance in 7.x).

  12. What about those [MySQL] gotchas? by bogaboga · · Score: 3, Informative

    They have done very little about these MySQL gotchas! They should have eliminated most of them first. You can still read them here: http://sql-info.de/mysql/gotchas.html.

    1. Re:What about those [MySQL] gotchas? by sql-gotcha · · Score: 2, Informative

      That list addresses issues in MySQL 4.1 and earlier. Unfortunately I haven't had time to try out any of the MySQL 5.0 pre-release versions, so I'm not in a position to provided any kind of qualified commentary. However my impression is that many of the "gotchas" in the list have been addressed.

    2. Re:What about those [MySQL] gotchas? by minginqunt · · Score: 5, Informative

      No true.

      Those gotchas all (mostly) go away if you run MySQL 5.0 in strict mode. Compatibility mode is provided for 4.1 and back-asswards behaviour if you need it.

      See: http://dev.mysql.com/doc/mysql/en/server-sql-mode. html

      Martin

    3. Re:What about those [MySQL] gotchas? by robnauta · · Score: 3, Informative
      Of course, as the MySQL line has always been to manage transactions in code, I don't see why they didn't just raise an error and let the application deal with the manual rollback. Who would ever want invalid data to be inserted?

      Manual rollback ?The idea is that if you do the following:
      insert into mytable values (100);
      insert into mytable values (200);
      insert into mytable values (300);
      rollback;
      rolls back ALL changes. This is in Oracle, in Sybase or SQLServer you would start with a 'begin transaction'.
      Imagine these inserts are in an upgrade script for an application. Now the script has to either errorcheck and commit after each row, or have nested if-then's. If the second statement fails, delete 100, if the third one fails delete 100 and 200. And you have to do all that in SQL ? No thanks. Give me a REAL database.

  13. Server usage not shipping applications... by Anonymous Coward · · Score: 2, Insightful

    The license you describe doesn't say anything about server usage.
    Clearly, the main-use for MySQL lies in server-client architecture. As long as you do not ship your self-created web-application, I see no reason you should be suspicious about MySQL.

  14. Re:Still waiting for a programmable GUI by TheRaven64 · · Score: 2, Insightful

    Write a specification document. Seriously. I haven't used Access since I was at school, and I honestly have no idea what it does that is any use. I suspect a lot of the people who are capable and willing to program an Access-replacement are in a similar position. Tell the community what you need. Just saying `nothing exists that fits my undisclosed requirements' does not help anyone. Please send me the URL once you have put the requirements online.

    --
    I am TheRaven on Soylent News
  15. Just won an iPod Nano Nano by patrikG · · Score: 2, Funny
    From http://dev.mysql.com/mysql_5_contest.html
    Weekly Prize (8 winners; 1 per week) This is your opportunity to win: * An Apple iPod nano To be eligible to win the Weekly Prize, you must: * File reproducible bugs at http://bugs.mysql.com/
    Reproduc a ble. That's a reproducable bug. iPod Nano with scratchable screen: here I come.
  16. Re:Having worked with oracle 10i for the last year by kpharmer · · Score: 4, Insightful

    > And Oracle 7 for the two years before -- in a not-so-large database -- I think there is not much to fear...

    Actually, no: many databases these days are now supporting various types of logs - in which you've got tables with tens of millions of rows. Oracle and DB2 have the following in place to support massive tables:
    1. query parallelism - that provides linear performance improvements up to 4 cpus or so
    2. data partitioning - that allows the database to just scan data needed, rather than entire table when indexes aren't appropriate (b-tree indexes only work for around 1-3% of data)
    3. materialized views - in which views actually hold data - and this data is kept up to date by the database server. Often used for summary tables.
    3. query rewrite - in which your queries are automatically re-written to apply to a summary table (see materialized view) if one exists.
    4. clustering - in which data spans multiple servers, and all servers work together on your query.
    5. smart optimizer - intelligent score-based optimization responsible for determination of best access paths for your queries.

    With the above features db2 or oracle can drive 40x the performance of mysql or postgresql in a reporting application (or transaction one with a few large scan-oriented tables) on identical hardware (say a 4-way SMP). If you didn't see an impact from these features then either you have one of the fairly rare apps that can't benefit, or you should revist the design.

    Don't get me wrong - I really like postgresql. But neither it nor mysql is even in the ballpark for performance on db2 or oracle. Nor is the price much different - db2 is only around $700 for 4/5 of the above features on a 2-way smp vs $500 for mysql. Eventually mysql & postgresql will support these features. But it'll probably be five years before they are working well.

  17. And despite the fact that I feel postgres... by MrBandersnatch · · Score: 4, Interesting

    is often the better database solution, I'll still be using MySQL. Why? Well a quick search on cwjobs shows 188 jobs requiring MySQL experience vs 7 for postgres!! Its a real shame but having used the best tool (C++ Builder) for my last job and then being unemployed for @2 years because people wanted either VC++ or Unix based C++ experience; I *WONT* be making the same mistake again!

    Anyways, that said, Ive already played about with 5.011 and apart from the yukky syntax one has to use to support transactions it seems quite stable. Its might have taken a long time for them to finally make it a "real" database product but it seems good enough for small databases.

    One of my next jobs is to test it with 10 million + records and see how it performs though so my assessment may be premature...

  18. Business logic does not belong in Access by Rufosx · · Score: 2

    Access is an interesting app but has no business use whatsoever. I have been involved in multiple projects to rip apart poorly written applications in Access to move the data and the logic to where it belongs : a real multi-user relational database.

    Writing a business application in Access is like writing it in Excel. The logic is poorly located and hard to share, the app is single-user, and the interface is crap.

    What you want is a framework for quickly building apps on top of a real database. And thats another debate.

  19. A database is not a GUI by msobkow · · Score: 4, Interesting

    The only so-called "database" that emphasizes it's GUI is Access. Every other vendor/product I'm aware of relies of separation of duties and doesn't try to roll user interfacing into what is rightly a back-end service.

    Administration tools for commercial and OSS databases may be easy for small sites and novice DBA's that don't know their tools, but large applications rely on database scripts to handle configuration, not GUIs. The reason is simple: you can't put a mouse click into CVS/RCS/SCCS/???.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:A database is not a GUI by humbads · · Score: 2, Interesting

      > so-called "database"

      Right. Access is not a database, but only a front-end GUI program. What people call "Access" is actually the Jet Database Engine, which is implemented in a set of DLLs. It is similar to SQLite in that it is a file-oriented, rather than connection-oriented, database. Jet database files have a "mdb" extension.

      Access can also act as a front-end to SQL Server databases, and has loads of import/export tools. Access (the GUI) is popular with me because makes it so easy to clean up and move data around between databases, text files, Excel files, etc. The Jet engine is free, and it is not a bad engine for everyday tasks involving a few users. The most severe restriction nowadays is the 4GB database size limitation and the fact that it is no longer supported by Microsoft. It will be replaced by SQL Server Express.

  20. Re:SCO by 10Ghz · · Score: 3, Insightful

    Well, SCO also ships PostgreSQL with their product, can we trust the PostgreSQL-folks?

    --
    Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
  21. Re:Still waiting for a programmable GUI by Craig+Ringer · · Score: 2, Insightful

    PHPMyAdmin and MySQL Control Center are database management GUIs. I don't think they're supposed to be Access-like apps, and I'm personally happy about that, since when doing DB admin I don't want a tool that tries to second guess me, hides things from me, etc.

    One Access-like app is OpenOffice.org 2.0 Base (Go test it and report issues before the final OpenOffice.org 2.0 release!). It's extremely new and it's rough around the edges, but it looks decent. It's an Access clone to the point where I'm surprised Microsoft aren't suing about stolen icons.

    If you're looking for something in the same vein, but not seeking a direct Access rip-off, then Rekall may be an option worth investigating. Both it an OO.o are cross-platform.

    Do be aware that tools like Access encourage you to do too much client-side. It's important to consider using in-database stored procedures and (often updateable) views where appropriate for efficiency and clean structure. You can then use an Access-like app to provide a user-interface to that higher level database interface, instead of just poking around in the raw tables.

  22. For good reason by Stone316 · · Score: 3, Interesting

    Most DBA's are adequate at best and most likely don't have much experience trying to squeeze every ounce of CPU out of a box. So I can understand why they do this... I personally don't take 'user' benchmarks very seriously because most times you have no idea how their environment is configured or if it is even configured properly.

    --
    "Thanks to the remote control I have the attention span of a gerbil."
  23. Read the fine print... by Decibel · · Score: 4, Interesting

    AFAIK the clustering and load balancing 'solution' for MySQL means your entire database has to fit in memory. Not very practical...

  24. Re:Having worked with oracle 10i for the last year by DrShasta · · Score: 3, Insightful

    You are talking about "massive" tables and a "reporting" application. Of course Oracle and DB/2 are the right choices for this. Has anyone ever thought differently?

    I've always used MySQL and it has always been extremely fast for me. But I've always known that it isn't meant for data analysis on massive amounts of data. The only time I've ever heard anyone compare MySQL to Oracle and say that MySQL was just as good as Oracle is when using small tables on a web app, which is exactly what MySQL is used for 99% of the time.

  25. Re:I see a problem by bwalling · · Score: 4, Insightful

    Hmm... I'm no database person but if you're creating a table that only allows a value of up to 127 and go over that, I would expect it to give you 127. What would a real database do?

    Return an error and don't make the insert.

  26. ODBC by abulafia · · Score: 4, Informative
    Now, my one pet-peeve in this area is that there is no linux equivalent of ODBC.

    There isn't?

    I just finished a project that accesses SQL Server from a Linux/Apache/mod_perl app using ODBC via the FreeTDS drivers. (Don't ask, client requirement.)

    Granted, not all of the unixodbc drivers are free. But then, they aren't in MS land either, although you might not notice because you're paying for them via a bundle.

    --
    I forget what 8 was for.
  27. Re:Having worked with oracle 10i for the last year by kpharmer · · Score: 2, Insightful

    > You are talking about "massive" tables and a "reporting" application. Of course Oracle and DB/2 are the right choices for this. Has anyone ever thought differently?

    Yes - everytime a product or technology is overhyped people believe it will do everything. Search for mysql and data warehouse - you'll find plenty of people who think it can handle massive data without really understanding what db2/oracle/informix/etc do that's different.

    > The only time I've ever heard anyone compare MySQL to Oracle and say that MySQL was just as good as
    > Oracle is when using small tables on a web app, which is exactly what MySQL is used for 99% of the time.

    Right - in that context mysql/postgresql are competitive. Of Course, that isn't what MySQL AB is telling people. Little surprise, these are the same people that a few years ago were telling people that they didn't need primary key/foreign key constraints either.

    Anyhow, I've got an application right now that for its first two years stayed quite small - just a few thousand rows. Implemented in db2 - since we need a major database anyway for the larger databases with a billion rows, and we can save labor by staying consistent. Anyway, this little database is about to now explode in size due to expanded requirements and new customers - we're expecting one little critical table to go from 3,000 rows to around 500,000. Its history table will go from maybe 10,000 to 10,000,000 rows. Other tables throughout the databae will likewise expand. DB2 was overkill when this database was first created, now it's perfect: it'll support the heavy transactional loads, automated system failover, and very fast scans, reports and other tough queries. This application growth is not at all uncommon - everyone is putting far more data into databases than they were just a few years ago.

    So yeah, mysql and postgresql are neat products, but their lack of scalability for massive tables or analytical queries is a major gap. And the requirements for this capability are now commonplace - unlike ten years ago when only a few data warehouses really need it.

  28. If you'd taken some time to dig a little bit... by JetJaguar · · Score: 2, Informative
    You would've have found out that MySQL AB isn't paying SCO a dime. In fact, SCO is PAYING MySQL to support MySQL on OpenServer, the cross marketing crap, is well, SCO marketing crap (The following is pasted from a message from one of the MySQL developers to the mysql mailing lists):

    Nothing to hide, no conspiracy here ;-)

    I think the discussion here has hinged on "the nature of the partnership". Let me assure you that no money has gone towards SCO.

    They have provided us with the means to build and support binaries on SCO OpenServer 6. So they're paying us for... developing our software, which is all GPL licensed (yes we do sell non-GPL licenses as well, for the same code).

    Knowing this fact (SCO funding GPLed development), most people regard the partnership with a benign smile ;-)

    The other issue I spotted was about "commercial binaries". Users with OpenServer 6 get a trial subscription to our MySQL Network subscription service. These are certified binaries, but still GPL licensed. Non-GPL (aka commercial) binaries are an optional (but free) extra under MySQL Network. That option exists mainly to assist companies where using GPL-licensed software runs into policy problems, etc. We do also sell non-GPL licenses separately from MySQL Network, to OEM/embedded customers.

    I hope this clarifies the situation to your satisfaction. If you have any further questions, please feel free to ask me.

    Regards,
    Arjen.
    --
    Arjen Lentz, Community Relations Manager
    MySQL AB, www.mysql.com

    --

    Shop Smart, Shop S-mart!

  29. Re:Integrity? by ip_fired · · Score: 2

    I can confirm that MySQL 5.0 doesn't allow you to drop a table if it is referenced by a foreign key.

    Also, the way to go when you set up MySQL is to set the default table type to InnoDB, which supports transactions, then you don't need to worry about point 3.

    I haven't experienced the other two problems. But then, I don't have millions of rows, only hundreds of thousands.

    --
    Don't count your messages before they ACK.
  30. Re:ERD tool ? by Anonymous Coward · · Score: 2, Informative

    Use Dia http://www.gnome.org/projects/dia/ to create UML diagrams. Then use tedia2sql http://tedia2sql.tigris.org/ to create sql scripts for PostgreSQL, MySQL, Oracle or other RDBMS. For PostgreSQL you have pg_autodoc http://www.rbt.ca/autodoc/ to create diagrams and HTML documentation directly from database server.

  31. Database wars, episode #5512128 by twodot72 · · Score: 2, Insightful

    I strongly suspect the slashdot editors have a bet as to how many times they can post a MySQL story and have the same debate, with more or less the same bashing, arguments, and counter-arguments repeated all over again.

    It's must be their secret revenge on the fraction of the readership screaming DUPE! every time they post a story resembling an earlier story. Now, they can read their latest MySQL story, point at almost any comment, and scream "DUPE!" they too!

  32. Wow, very nicely done. by Some+Random+Username · · Score: 3, Informative

    You just posted what is quite possibly the single stupidest comment in the entire history of slashdot. Sorry, I don't think there is a trophy or anything, but you should still be very proud.

    First of all, its not graceful degredation, its data corruption. The entire purpose of constraints is to give you an error when you try to insert invalid data. Changing it to be valid data and not even telling you is completely and totally the wrong thing to do. How about if your data doesn't pass a constraint then mysql does a drop table, is that still good for you? Its just as helpful and makes just as much sense.

    Second, databases are supposed to have constraints, they store the data, they have all the rules of what is and is not valid data. Duplicating that in your code is absolutely brain dead, although its exactly what php/mysql developers have always had to do. This warps their minds and makes them think like you, that mysql is right, and everything else is wrong. Sorry, mysql is broken, every other database follows the SQL spec and returns an error when there is an error. Randomly changing data is not the correct response to an error condition, nor is there anything graceful about it.

  33. Fun Databases by KevinColyer · · Score: 2, Funny

    I'm can't wait to see the new MySQL now with its "fun features". I'm totally intrigued as to what a fun feature might be in a data base? Will it start replying to queries in style of the Swedish Chef? Bork ,Bork, Bork! Still great work from the MySQL team. Where would /. be without them? Probably /.ed!

  34. Re:Having worked with oracle 10i for the last year by kpharmer · · Score: 2, Interesting

    > That page made 10 calls to the db with a total processing time of roughly 0.0055 seconds.

    Right, looks like that's working well for you. With mysql getting that query performance on a 4m row table, it must be using an index, which means that you're selecting less than 3% of the data each time. The scalability issue emerges when your result set is 10% of the total table, you have to sort 100,000 rows, etc.

    > Oh, it would still be available... I would just connect to a different db to pull it in. My code is
    > already written for that to happen, I just need to change the connection string for the historical db.
    > Right now it is exactly the same as the current db connection... so they both live in the same db.

    sounds like a good plan

  35. VACUUM by commanderfoxtrot · · Score: 2, Interesting

    I had a similar problem only this morning. I deleted all the rows from a table (by using DELETE FROM) and SELECT COUNT(*) went from sub-second to two minutes.

    That's after going from 400,000 rows to zero.

    VACUUM ANALYZE made no difference; however VACUUM FULL sorted it out. You should really have auto vacuum running, but for the dev I am doing I prefer to do it by hand.

    From what you're saying, this could be the reason why it takes so long.

    For what its worth, I've moved to Postgres because it's just so more solid. It's fantastic software. And I know what I'm talking about- I'm heavily involved in (big) mainframe DB2 at work.

    --
    http://blog.grcm.net/
  36. Ok, here goes... by krow · · Score: 3, Informative

    a MySQL developer say "yeah, I don't know what we were thinking, that's a really fucked up thing to do" Yep, its a fucked up thing. This is why we implemented strict mode for 5.0. In 4.1 you get warnings, in 5.0 if you are using a transaction table it tosses an error. If this is an issue, upgrade to 5.0. Personally for me it is.

    --
    You can't grep a dead tree.