Slashdot Mirror


8 Reasons Not To Use MySQL (And 5 To Adopt It)

Esther Schindler writes "Database decisions are never easy, even — or maybe especially — when one choice is extremely popular. To highlight the advantages and disadvantages of the open-source MySQL DBMS, CIO.com asked two open-source experts to enumerate the reasons to choose MySQL and to pick something else. Tina Gasperson takes the 5 reasons to use MySQL side, and Brent Toderash discusses 8 reasons not to. Note that this isn't an 'open source vs proprietary databases' comparison; it's about MySQL's suitability in enterprise situations."

288 comments

  1. oooo, goody by Anonymous Coward · · Score: 0

    A nice flame war. I'm just going to sit back, crack a beer and enjoy it. It is almost memorial day weekend, you know. Hopefully it get hot enough in here to roast a hot dog.

    1. Re:oooo, goody by Anonymous Coward · · Score: 0

      Roast a hot dog? That's a really modest statement.

    2. Re:oooo, goody by tomhudson · · Score: 4, Informative
      The guy is arguing with himself - the first 2 reasons:
      • MySQL Uses the GPL
      • MySQL Doesn't Use the GPL

      Oh, boo-hoo, dual-license bad!

      The rest of the article is equally stupid. For example, "If you already own proprietary licenses ..." has NOTHING to do with whether Mysql is a good fit or not. Next it will be "I hae Pepsi in the fridge; I really want a glass of free cold water or a bottle of Coke right now, but I'll buy some more Pepsi instead seeing as I've already standardized on it".

    3. Re:oooo, goody by Mattintosh · · Score: 0, Offtopic

      There's nothing better than a nice wiener-warmer.

      Perhaps I shouldn't talk about warming wieners in the same post as "flaming on"... Ah, what the hell...

      Flame on!

    4. Re:oooo, goody by DysenteryInTheRanks · · Score: 5, Funny
      A nice flame war. I'm just going to sit back, crack a beer and enjoy it. It is almost memorial day weekend, you know. Hopefully it get hot enough in here to roast a hot dog.

      Oh goody! I'll help get things going:

      • MySQL users will have to wait until you are done with the fire before they can roast their hot dogs, since MySQL is not a real database and does not support concurrent roasting;
      • I've read the PostgreSQL manual eight times and still can't figure out something as bloody simple as roasting a hot dog, though I did figure out I have to call VACUUM before I can apply ketchup;
      • Serious enterprises who care about their hot dogs use Oracle, since you can roast over 10,000 dogs at once and optionally impart the taste of filet mignon;
      • If you try to roast a footlong hotdog using MySQL it will silently truncate it to regular size, causing your child to cry;
      • Oracle will sue you if you complain about the difficulty of starting your fire or the blackened taste of the dogs;
      • With SQLite your hot dogs are pre-roasted;
      • Last year on Memorial Day, mysqld leapt out of my MacBook Pro and pushed my cousin into the fire, resulting in third degree burns. And also it causes cancer. And terrorism. Blindness. Violent puppy death. BOO! MYSQL IS SCARY DON'T USE MYSQL!!


      Happy Memorial Day!
    5. Re:oooo, goody by iknownuttin · · Score: 1
      Your post is timestamped after 5 PM, so I won't make a crack about hitting the beer early. ;-)

      Happy weekend to you, too!

      --
      I prefer Flambe as apposed flamebait.
    6. Re:oooo, goody by Doctor+Memory · · Score: 4, Funny

      Serious enterprises who care about their hot dogs use Oracle, since you can roast over 10,000 dogs at once and optionally impart the taste of filet mignon; Yeah, but only if your locale is set to US-ASCII. If you try to use UTF-8, taste defaults to pate de fois gras. However, under US-ASCII "SELECT beer FROM fridge" will return only 'Budweiser' or 'Miller Lite'...
      --
      Just junk food for thought...
    7. Re:oooo, goody by Ucklak · · Score: 3, Insightful

      The 5 reasons to use it are far more informative than the 8 stupid reasons not to use it.

      It boils down to corporate culture.

      --
      if you steal from one source, that is plagiarism, if you steal from many, well, that's just research.
    8. Re:oooo, goody by DysenteryInTheRanks · · Score: 1

      Heh, I think Larry Ellison also added a special JIS encoding mode which gives you kind of an unagi flavor ;->

    9. Re:oooo, goody by moderatorrater · · Score: 1

      Of all the reasons to not use MySQL, and there are a lot, the licensing is probably the least likely to convince someone to use or not to use it. And the author presented those reasons in a stupid way, giving ridiculously stupid ways the licensing could effect you.

    10. Re:oooo, goody by SP33doh · · Score: 1

      to be fair, water, coke, and pepsi all use basically the same syntax ;]

    11. Re:oooo, goody by sm4096 · · Score: 1

      I initially came across this article when no one had posted anything. It's a good thing I didn't waste my time reading it and just came back for the good stuff. The article is probably boring but I agree that the the flame war could should at least be interesting.

    12. Re:oooo, goody by einhverfr · · Score: 4, Insightful

      Interestingly, despite the fact that I almost never recommend MySQL, I do agree that the 8 arguments opposed were not that wel thought out.

      My comment to the article was:

      First, I do not recommend MySQL frequently and I figured I would explain why. Although I have no formal training in database design I consider myself more educated in these matters than the average developer.

      The basic issue is that, until recently, MySQL has avoided being a classical RDBMS. Instead, it has been developed as a quick and dirty data storage system with an SQL interface. While this is great for some kinds of applications (light-weight web content systems), it breaks down quickly when you need to have many different applications (some commerical, some inhouse) running against the same database. Even MySQL 5 does not get away from this concern entirely (even though the features now exist, enforcing them by the RDBMS is still problematic).

      Basically-- if you want a rapid development storage device with an SQL interface for a single application, there is no reason not to use MySQL (aside from the standard Gotchas). If, however, you want to have a more intelligent database which mathematically represents your data as well as possible, and displays these properly to many different client apps, it is still not adequate. Note that the former case has a nasty habit of evolving into the latter case.

      --

      LedgerSMB: Open source Accounting/ERP
    13. Re:oooo, goody by einhverfr · · Score: 1
      A few more:
      • MS SQL users can roast as many hot dogs as Oracle users, but only on grills made by a single vendor.
      • Firebird users can embed HOT DOG roasters in any number of applications, though the documentation is well out of date and entirely lacking in many areas.
      • MS Access users can try to roast hot dogs but may find their dogs mutilated if they try to do this over a network
      • PostgreSQL users can roast dogs in many different ways, but using, say, PL/R to do it is not covered in the manual.

      I am not familiar enough with Sybase, IngresII, DB2, etc. to comment on them.
      --

      LedgerSMB: Open source Accounting/ERP
    14. Re:oooo, goody by JAlexoi · · Score: 1

      Jokes that are true are funny, those that are lies are NOT. Specially when you are not using metaphores as in: "read the PostgreSQL manual eight times".
      If you tried to read at least once, you would see that it came long way in 2 years.

    15. Re:oooo, goody by Ucklak · · Score: 1

      In a nutshell, I wouldn't recommend MySQL for mission critical stuff either.
      Mission Critical data usually accompanies a staff and a dedicated support plan.

      If you want a quick, dirty, reliable database, go with MySQL.

      --
      if you steal from one source, that is plagiarism, if you steal from many, well, that's just research.
    16. Re:oooo, goody by hey! · · Score: 1

      It's not so much that the reasons are poorly thought out, as that the reasons may not apply to what you have in mind.

      You can't talk about reasons to use a database platform apart from the application(s) you are supporting, the requirements you have to meet, and the people you have to support it.

      The last point is important. The only database platform that can handle just about any application thrown at it approximately as well as the competition is Oracle. However, Oracle is a massively complex (alternatively extremely tunable), and attempts to simplify it are like pasting smiley faces on an airliner cockpit to make it "user friendly". When you buy into Oracle, you ought to consider buying an Oracle savvy staff along with it.

      Like any other product, MySQL works fine in situations where it works fine. The important thing is recognizing that. I do like their integration of network with security. That's innovative.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    17. Re:oooo, goody by turing_m · · Score: 1

      Those 5 reasons to use mysql are more informative than those 8 "reasons" against, simply because the majority of those "reasons" are in fact straw men.

      I mean, ACID compliance being called a "feature" of a RDBMS? Unless your company views its data as replaceable junk that will never be need to be made sense of again at any point in the future, ACID compliance should be mandatory and enabled by default. Surely a comment on this would be useful to CIOs? Instead, all we get is this:

      "Feature Set Maturity ...
      However, if the user's temperament is particularly gun-shy toward new technology, the longer-supported feature is the more certain bet. In this case, these three major features are still relatively recent additions. Even as of MySQL 5.0, ACID (Atomicity, Consistency, Isolation, Durability) consistency is not guaranteed in the case of a crash when some kinds of stored procedures or functions are used to modify the database."

      --
      If I have seen further it is by stealing the Intellectual Property of giants.
    18. Re:oooo, goody by Gnight · · Score: 1

      Wait a minute. Doesn't MySQL AB offer dedicated support plans, training, and certifications?

  2. Warning: mysql_connect(): Too many connections ? by lectos · · Score: 0

    Warning: mysql_connect(): Too many connections ?

  3. First reason not to... by mobby_6kl · · Score: 0, Flamebait

    1) It's not a real database

    1. Re:First reason not to... by jZnat · · Score: 1

      What's your definition of a "real database" then? I wouldn't think you would say that anything not fully conforming to ANSI SQL isn't a real database because I don't believe any RDBMS fully conforms to the spec (it's huge).

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
  4. Uh, oh. The pro mysql guy can't count. by Anonymous Coward · · Score: 0

    He lists six reasons. On the other hand, the anti-mysql guy tries to up his reason count by breaking licensing issues into two reasons

  5. Ready...Set... by mugnyte · · Score: 4, Funny

    ...Fanboi RDBMS wanker post race begins.....

      NOW

      Seriously, the articles do nothing more than point out the *best places* MySQL may or may not work, not that it is better than anything.
      One size yet again does not fit all.

        Hmmm..where's my Model204 manuals...?

    1. Re:Ready...Set... by jrockway · · Score: 4, Insightful

      These two articles were some of the worst pieces of literature I've ever seen in my life. The GPL and BSD licenses are "too free"? "Ajax" is a programming language powered by MySQL? Etc., etc. Oh my God... what crap!

      --
      My other car is first.
    2. Re:Ready...Set... by binary+paladin · · Score: 1

      "Ajax" is a programming language powered by MySQL?

      Good, I'm not the only that read that going, "Huh?"
    3. Re:Ready...Set... by hobo+sapiens · · Score: 1

      The first and second reasons in the con article sum up both articles. It uses GPL. It doesn't use GPL. Whatever.

      Many of the other things in the articles are two sides of the same coin. One of the pros for MySQL is that it doesn't require much training to administer. One of the cons against it is that there are no certifications available. Well, which is it? It easy to admin good or is something complex like Oracle good? Well, that depends, now doesn't it?

      Both articles could have simply said "MySQL might work well for you. It might not."

      --
      blah blah blah
    4. Re:Ready...Set... by eam · · Score: 1

      One of the cons is that it isn't scalable. One of the pros is that it is scalable. Stupid articles.

    5. Re:Ready...Set... by cthulhu11 · · Score: 0

      I tend to dismiss a-priori anything that uses the word "enterprise" yet isn't talking about Star Trek.

  6. Ah, yes. Enterprise. by Anonymous Coward · · Score: 0, Flamebait

    I know all about enterprise solutions. Those guys over at dailyWTF?! can't shut up about them. Every developer should model himself after what Enterprise Pushers say, because they obviously know best. XML, COM+ and J2EE for teh people!

  7. The 8 reasons not to use mysql by mgkimsal2 · · Score: 5, Informative

    1. MySQL Uses the GPL
    2. MySQL Doesn't Use the GPL
    3. Integration With an Existing Environment
    4. Product Maturity
    5. Feature Set Maturity
    6. Availability of Certification
    7. Corporate Considerations
    8. Perception of Scalability

    They all have *some* merit, but all are very dependent on your situation. 1 and 2 seem to cancel each other out, as in if #1 is an issue for you, #2 probably wouldn't be. #3 is sort of weak, arguing that if you already have many other databases, adding yet another different system is detrimental. That's not an argument against MySQL, but against disparate systems altogether. The rest of the issues are matters of degree. "While MySQL does have a certification training program, its training availability is not nearly as widespread as for, say, Oracle or MS-SQL Server." True, but if you're comfortable with the level of quality of certified MySQL people, then go forward. It'll contribute to the general upward spiral of adoption, hiring, certification and so on. MySQL is going to keep growing, it's just a matter of how quickly and in what directions.

    P.S. Printable version here -> http://www.cio.com/article/print/113111

    1. Re:The 8 reasons not to use mysql by EsbenMoseHansen · · Score: 4, Informative

      Are those supposed to e reasons? How about

      • Command line completion in mysql client sucks
      • Transactional support is a bit sub-par compared to postgres.
      • Unless carefully configured, not nulls, group bys and quoting are broken.
      • Sequence support is also a bit sub-par.
      • Some entity name's case sensitivity is dependent on host filesystem
      • Subselect support slow and memory hungry (I've only tested this a little)
      • Blobs cannot be accessed as streams

      Only 7, but all of those are real real complaints :)

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    2. Re:The 8 reasons not to use mysql by pr0xie · · Score: 1

      Product Maturity
      By way of comparison, Oracle will hit the 30th anniversary of its first product shipment in 2009....
      Mature or just long in the tooth?
      If they are trying to maintain backwards compatiblity with older versions I would go for a newer fresher product.
      And why is Perception of Scalability the only performance related complaint? The rest seem like excuses I hear from people who don't want to change.
    3. Re:The 8 reasons not to use mysql by Shados · · Score: 1

      Btw, #3 is actually a -crazy- big deal. DBMS like Oracle and SQL Server, for all their flaws, have incredibly powerful tools to integrate with legacy environment. There are NOT many ETL specialists around, and those that are free tend to charge premium for their services, making less well known products (3rd party) to be prohibitively expensive to use in the long run, so you're better off using the built in stuff. The commercial DBMS tend to be a blessing in that department.

    4. Re:The 8 reasons not to use mysql by not+already+in+use · · Score: 1

      It should be noted that mySQL is planning an IPO, scratch one of their points. http://slashdot.org/article.pl?sid=07/04/26/021121 0&from=rss

      --
      Similes are like metaphors
    5. Re:The 8 reasons not to use mysql by HaMMeReD3 · · Score: 1

      I don't know if any of these have any merit, lets see
      1. MySQL Uses the GPL
      2. MySQL Doesn't Use the GPL
              - Those 2 cancel each other out, so lets toss em altogether, clearly the author failed logic class.

      3. Integration With an Existing Environment
              - It's never an easy task to integrate anything into an existing environment, but lets see you install oracle on a debian server, or any other posix server not supported directly by oracle.

      4. Product Maturity
            - The age of the product has nothing to do with the maturity of it, it also depends on the skill of the developers, there initial plans on how well they've scaled throughout time, and the amount of developers working on the project. An analogy would be to look at cars, the car with 100k is going to probably be in better shape then the one with 200k, regardless of how old either of the cars are. Also, the new cars have up to date technology in them and will stand the long haul better while operating more efficiently.

      5. Feature Set Maturity
            - This is probably the most valid of them all,
      6. Availability of Certification
            - It's available, it's expensive, and don't think you won't be paying the oracle dba or the ms dba craploads of money anways, if you want your devs to really really have it then send them to get certified, it's not like it matters all db's are relatively the same, get it relatively??

      7. Corporate Considerations
            - Fuck corporate bastards, they clearly have no clue what they are talking about, leave the technical decisions to someone technical. If paying more for something makes you feel better go get a commercial license and a support license for mysql. A company being publicly traded or not has nothing to do with how appropriate a dbms is to your system. The only aspects for consideration are TCO and Technical limitations/strongpoints.

      8. Perception of Scalability
            - What do peoples perception have anything to do with reality, crazy Christians perceive creationism is how the world was created 6000 years ago, it doesn't make it so. Even the author says so, sure it may be hard to change perceptions but it's not a reason why not to use mysql, it's more of a reason on why people don't.

      Now I'm not gonna try and say mysql is the best dbms ever, just that this article is very "managerial" and it's the kind of stuff I'd expect to hear out of an incompetent boss.

    6. Re:The 8 reasons not to use mysql by larry+bagina · · Score: 4, Informative

      #8: "February 31, 2007"

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    7. Re:The 8 reasons not to use mysql by Richard_at_work · · Score: 1

      I will agree with this, we are currently looking to migrate a legacy UNIX system (in a language you have never heard of, Sculptor, with data stored in what essentially amounts to a proprietary CISAM file with no database engine but can only be accessed by said language) to an MS SQL driven system (yes, we looked at everything, and MS SQL and .Net came out top, and thats coming from me, the company UNIX guru).

      I can tell you right now, SSIS is fantastic for what we want to do, especially integrating with the above legacy nightmare.

    8. Re:The 8 reasons not to use mysql by Shados · · Score: 1

      Yup, I'm our company's SSIS guru (I don't know how I ended up there, I'm an asp.net developer, but oh well...), and it is great, we even use it to do some system orchestration between a bunch of legacy system, our business partners, DB2, and a bunch of other things (even using some custom SSIS tasks and components that I made). Its awesome.

      In this day and age, the data engine itself is just one part of the equation.

    9. Re:The 8 reasons not to use mysql by EsbenMoseHansen · · Score: 2, Informative

      #8: "February 31, 2007"

      I almost included that one, but they have actually fixed that 5.02. You can still specify ALLOW_INVALID_DATES as an sqlmode for that nostalgic feeling, though.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    10. Re:The 8 reasons not to use mysql by h4ck7h3p14n37 · · Score: 1

      I could be mistaken, but I thought Connector/J 5.0 supported retrieving BLOBs as streams if you used the MySQL specific API and not just generic JDBC.

      The latest production version of the driver is now 50-100 percent faster in most situations than the previous version. It also creates fewer transient objects than before, leading to better performance and even more stability. The driver now also supports "streaming" result sets, which allows users to retrieve large numbers of rows without using a large memory buffer. With newly added large-packet protocol support, the driver can send rows and BLOBs up to 2 gigabytes in size.

      A client of mine insists on storing documents as BLOBs rather than simply storing URI's, so being able to stream BLOBs is a big plus for his application.

    11. Re:The 8 reasons not to use mysql by TopSpin · · Score: 3, Insightful

      Does MySQL still truncate data that doesn't fit? I recall similar lists of criticisms posted here and elsewhere about MySQL and one of the entries is that numbers 'too large' or strings 'too long' for a given column are just silently whacked down to size. I thought then and persist in thinking that this behavior is pretty damning.

      --
      Lurking at the bottom of the gravity well, getting old
    12. Re:The 8 reasons not to use mysql by ryu1232 · · Score: 1

      Most CIO's would lump all of your reasons under: 5. Feature Set Maturity. Both of these were high level articles aimed at management, not at developers. This becomes even more evident with reason number 6: 6. Availability of Certification as real programmers are too busy coding to care about certs.

    13. Re:The 8 reasons not to use mysql by Shados · · Score: 1

      From the description you pasted (and I didnt check on my own), the wording is a bit misleading: its talking about streaming the result set itself for when it has a lot of -rows-, not streaming a single field when that field is too large. And the rest simply talks about what size of blobs it can push at all.

      What the other poster meant, is let say I have a 1 gigabytes AVI file in a row, its possible (at least with other DBMS) to open that particular -field- as if it was a file on the file system, and to stream it byte by byte (and insert the same way too), instead of doing it in one shot, which could destroy your server's memory.

    14. Re:The 8 reasons not to use mysql by Snover · · Score: 3, Informative

      You can set SQL modes, such as STRICT_ALL_TABLES, that will cause MySQL to reject invalid data instead of truncating it. There is documentation about the various SQL modes.

      --

      [insert witty comment here]
    15. Re:The 8 reasons not to use mysql by rbanffy · · Score: 1

      This should never, ever be even considered to ship enabled.

      It is so horrid it should be forbidden and deemed illegal in any sane jurisdiction.

    16. Re:The 8 reasons not to use mysql by Ed+Avis · · Score: 3, Insightful

      That is great to hear. The only question I have is why on _earth_ the safe (and standards-compliant) mode isn't the default, with the weird MySQL-only accept-Feb-30-as-a-valid-date kind of behaviour enabled with a special option for those who really want it.

      It's this kind of thing that makes me still suspicious of MySQL. I hope that for the next release - 6.0 or whatever it is - they can make a clean break with historical stupidity, and release a DBMS that gives safe, ANSI-compliant behaviour out of the box. However, there's nothing wrong with letting the sysadmin deliberately loosen some of the transactional constraints in cases where ultra high speed is important, although note that for all its supposed emphasis on speed over correctness, MySQL is slower than Postgres.

      --
      -- Ed Avis ed@membled.com
    17. Re:The 8 reasons not to use mysql by KarmaMB84 · · Score: 1

      I suppose the default mode is CORRUPT_DATA_SILENTLY?

    18. Re:The 8 reasons not to use mysql by Hoi+Polloi · · Score: 1

      Seeing as you seem to know a thing or two about MySQL...

      So how does its procedural code, trigger capability, and user defined functions compare to Oracle?
      Is it possible to port between them without jumping through too many hoops?
      Does MySQL support partitioning?
      How about performance with large dbs?

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    19. Re:The 8 reasons not to use mysql by fbriere · · Score: 1

      The only question I have is why on _earth_ the safe (and standards-compliant) mode isn't the default, with the weird MySQL-only accept-Feb-30-as-a-valid-date kind of behaviour enabled with a special option for those who really want it.
      Actually, according to the documentation pointed to by the GP:

      As of 5.0.2, the server requires that month and day values be legal, and not merely in the range 1 to 12 and 1 to 31, respectively. With strict mode disabled, invalid dates such as '2004-04-31' are converted to '0000-00-00' and a warning is generated. With strict mode enabled, invalid dates generate an error.
    20. Re:The 8 reasons not to use mysql by rbanffy · · Score: 1

      The first time I saw a VARCHAR2 I wanted to puke.

    21. Re:The 8 reasons not to use mysql by metamatic · · Score: 1

      Have they fixed the lack of time zones on date/time stamps? That'd be nice.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    22. Re:The 8 reasons not to use mysql by Just+Some+Guy · · Score: 1

      This should never, ever be even considered to ship enabled.

      Why's that? I don't follow MySQL development, so does that actually cause data corruption or something? Errors when it shouldn't? Something else heinous? It sounds like the setting you should want to always enable.

      --
      Dewey, what part of this looks like authorities should be involved?
    23. Re:The 8 reasons not to use mysql by mrchaotica · · Score: 1

      I don't follow MySQL development, so does that actually cause data corruption or something?

      You don't think cutting off the end of the data counts as corrupting it?

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    24. Re:The 8 reasons not to use mysql by spyowl · · Score: 4, Informative

      It's this kind of thing that makes me still suspicious of MySQL. I hope that for the next

      release - 6.0 or whatever it is - they can make a clean break with historical stupidity, and release a DBMS that gives safe, ANSI-compliant behaviour out of the box.

      Your suspicions are correct generally. However, your hopes may have to live a little longer because if the next version of MySQL is based on anything that they have out today you may be in for a disappointment. Here are my real reasons not to use MySQL:

      • MySQL is not scalable: there is no table partitioning. As your data grows and so does your use of the database, you'll find your options for scalability are very limited to what you can "hack" around on your own. Other RDBMS solutions like Oracle, MSSQL, and yes, even Postgres have anywhere from decent to excellent scalability.
      • Advertized "enterprise" features are hacked into the stagnant and very monolithic MySQL codebase and frequently do not deliver as advertized. Here are examples: Sub-selects are not well optimized, if at all; indexes cannot be used more than once in the same query to help with optimization; using a combination of triggers and stored procedures within transactions in a medium to high usage environment results in crashes that even MySQL cannot explain; row-level locking only exists if you only have primary key, and no other indexed columns that you need to update, and you are updating using that primary key; does not truly support MVCC - even with InnoDB your selects may block updates and the other way around; replication forces further limitations in concurrency; the list can go on and on. None of these are a problem to any noticeable extent with any of the other "enterprise" RDBMSes.
      • More on replication: even though MySQL has somewhat elegant solution for replication, besides limiting concurrency (as already mentioned) and introducing serialization, this solution poses additional tricky fundamental problems. For example, it is nearly impossible to implement a true multi-master replicated environment.
      • No HA solution: Oracle and MSSQL (recently and more limited) offer true HA solutions that can increase your database availability in case of failure, and within the HA environment guarantee the transactions and data the applications were led to believe was successfully manipulated. This cannot be achieved with heartbeat and replication using MySQL, or even Postgres for that matter.
      • Critical bugs dealing with data consistency: This is not a statistical analysis, but MySQL has had and still has a lot of critical bugs dealing with critical part of the RDBMS - data. e.g., you cannot rely on RDBMS for storing your data if, when queried under certain circumstances, it returns NULLs when it should return the correct data. It is not fully comprehensible how a product released as stable (such as version 5.0) can still have so many critical data-related bugs.
      • Horrible codebase: If you are at least a decent programmer, please have a look at MySQL code: monolithic, one main file with succession of countless if blocks for parsing, optimizing and running queries; features such as triggers, stored procedures, and replication visibly hacked in to the existing "bad" design. There's very little abstraction that can leave data files in inconsistent and unreadable state in the event of the server crash (mostly MyISAM). And then, just for kicks, please have a look at Postgres source code: well-organized, separated into well-designed components you'll get acquainted with certain satisfaction to components that do parsing, planning, optimization, execution, and other functions. Code is well-commented and, as a programmer, it will give you a certain comfort when dealing with the software. This is a very important point and demonstrates why Postgres, for example, having a solid foundation, can implement advanced features (such as transaction savepoints,
    25. Re:The 8 reasons not to use mysql by Anonymous Coward · · Score: 0

      Last time I checked, even in strict mode, if you entered 00/00/0000 as a date, MySQL would insert it as a date. It would throw a warning, but it would still enter the nonsense date. Your data is now crap.

      Strict mode isn't strict.

    26. Re:The 8 reasons not to use mysql by Just+Some+Guy · · Score: 1

      You don't think cutting off the end of the data counts as corrupting it?

      GGP: You can set SQL modes, such as STRICT_ALL_TABLES, that will cause MySQL to reject invalid data instead of truncating it.

      GP: This should never, ever be even considered to ship enabled.

      Me: I don't follow MySQL development, so does that actually cause data corruption or something?

      I was trying to figure out why the grandparent didn't think STRICT_ALL_TABLES should be enabled, when it seems to me like that should be the only acceptable value.

      --
      Dewey, what part of this looks like authorities should be involved?
    27. Re:The 8 reasons not to use mysql by hobo+sapiens · · Score: 1

      "lets see you install oracle on a debian server, or any other posix server not supported directly by oracle."
      I don't think that's what's meant by legacy | existing environment. Nobody installs Oracle on a box that's just laying around. That's dumb. If you're gonna invest in Oracle, then you won't put it on an old box just laying around. That's building your house on the proverbial sand.

      "An analogy would be to look at cars, the car with 100k is going to probably be in better shape then the one with 200k, regardless of how old either of the cars are. Also, the new cars have up to date technology in them and will stand the long haul better while operating more efficiently."
      Now, that's a Bad Analogy.

      "It's available, it's expensive, and don't think you won't be paying the oracle dba or the ms dba craploads of money anways,"
      Who pays MSSQL DBAs craploads? Every MSSQL DBA I know is a point-and-click guru. It takes a special freak to be a good Oracle DBA; they get the money I'd imagine.

      "this article is very "managerial" and it's the kind of stuff I'd expect to hear out of an incompetent boss."
      Agreed, the article was a bunch of fluff. However, a few good points were made. If you have a senior DBA who wants Oracle and can properly maintain it, my goodness, use it. If you have a good DBA, Oracle is flat out awesome and shreds anything else that dares compete. If you don't have a good (read trained, certified) Oracle DBA and can't or won't pay one, then don't even try to run Oracle. Use MySQL.

      --
      blah blah blah
    28. Re:The 8 reasons not to use mysql by hobo+sapiens · · Score: 1

      I can tell you, while Oracle obviously maintains some backward compatibility, they are actually pretty good at cutting out the cruft. It seems like every upgrade I have endured has been a real pain because stuff gets removed/deprecated.

      I think the people criticizing Oracle have never developed with a properly administered Oracle DB. Oracle is all about the DBA. If you have a good DBA, then it's great and flat out fast. If you don't then it will run like crap. Which is why if you have good Oracle DBAs you're a fool not to use it. If you do not have them, then you are a fool to use Oracle and should be using MySQL.

      --
      blah blah blah
    29. Re:The 8 reasons not to use mysql by TopSpin · · Score: 1

      I suppose the default mode is CORRUPT_DATA_SILENTLY? That symbol, CORRUPT_DATA_SILENTLY, produces 0 hits in both Goolge's web search Google Groups.

      Enjoy Memorial Day weekend.

      --
      Lurking at the bottom of the gravity well, getting old
    30. Re:The 8 reasons not to use mysql by HaMMeReD3 · · Score: 1

      On the oracle thing, lots of people make stupid decisions in implementation, just because it's a bad idea doesn't mean people don't do it. Last company I was with had postgres and debian and they made a decision to go oracle and debian because they were to scared to attempt to install the web service on another distro.

      Yeah I guess I agree on the mssql admins, it is pretty easy.

      I have no serious qualms about oracle as a dbms, just my point being you need a guru to fucking administrate it, whereas any programmer should be able to deal with mysql without much extra knowledge.

      Personally I'm very anti "extra features" in a dbms, there is a standard and I prefer to stick as close to it in my coding as possible. Anything extra oracle offers that is not sql compliant is vendor lock-in in my opinion, just attempts to sweeten the deal enough that you use the technologies and once your in it's to expensive to change. It's always important to design in a way that is flexible and compliance is the solution for that, vendor extra's no matter how tempting are always evil. I'm also not a fan of stored procedures because the extra layer of logic doesn't feel like it should belong in my data store, it adds complexity to something that would otherwise be a simple solution.

    31. Re:The 8 reasons not to use mysql by mattr · · Score: 1

      I like mysql but.. I made a varchar(5) column thinking it would expand automatically if a longer string was added. It truncated. Made it text instead. Undoubtedly this is fixable if I read more manual but I was under the impression from working with mysql 3 that this wouldn't happen and yet with mysql4 it did (probably because of this unsafe being default)..

    32. Re:The 8 reasons not to use mysql by protohiro1 · · Score: 1

      "Command line completion in mysql client sucks"

      I assume you have not used sql+ with oracle. Command line completion would be a dream! It doesn't even have command history.

      --
      Sig removed because it was obnoxious
    33. Re:The 8 reasons not to use mysql by jadavis · · Score: 1

      You can still specify ALLOW_INVALID_DATES as an sqlmode

      Let's add some extra values to the integer domain, then make it configurable! We can add values like "eleventeen" or "thirty-twelve"*. When we do some kind of math on those new values, we'll make up some completely arbitrary rule to arrive at a result.

      A database should not be configureware. MySQL has a ton of options which actually affect the semantics of user queries. Some options are in the configuration file and some are at table creation time (i.e. MyISAM vs. InnoDB).

      That is bad design, completely in conflict with the goal of relational databases. With relational databases, you should be able to change physical storage for performance without affecting user queries.

      The option you describe raises all kinds of questions: What if you set it to true, and then unset it? There is no way to tell whether a table contains real dates or some bizarre superset of the date domain. What if it's set to true, then you add invalid dates, then you turn it off, then try to query the data or put it in another table? The whole thing makes so little sense it's mind-boggling.

      *: with credit to the author of Calvin and Hobbes

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    34. Re:The 8 reasons not to use mysql by jadavis · · Score: 2, Interesting

      Another one:

      Does MySQL still use a rule-based planner?

      Without having an effective cost-based planner (like PostgreSQL) the performance for non-trivial (from a planning perspective) queries will never be competitive.

      If using a rule-based planner, how does MySQL know when to use a hash aggregate versus a sort + group aggregate? How does it determine join order without keeping statistics about the nature of the data stored in the tables? How does it know whether to hash join vs. merge join? What happens when the nature of the data in the tables changes enough such that what was good before is no longer good?

      A cost based planner is crucial.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    35. Re:The 8 reasons not to use mysql by renoX · · Score: 1

      What is funny, is that this is clearly the worst MySQL feature (and yes the default setting is *very* important) and yet it doesn't appear on the stupid 'reason not to use MySQL', clearly the guy who made the list doesn't know much about MySQL.

      Myself I would have put:
      -reason to use: many applications bind to MySQL first.
      -reason not to use: by default, MySQL can corrupt silently your data (I wonder how many applications change this setting, I'm not optimistic).

    36. Re:The 8 reasons not to use mysql by EsbenMoseHansen · · Score: 1

      "Command line completion in mysql client sucks"

      I assume you have not used sql+ with oracle. Command line completion would be a dream! It doesn't even have command history.

      I was bashing mysql at the time. Oracle is also a piece of crap, no question about it, making a similar list would not be hard. The memory footprint, the closed source, sequence "support", the very-poor-excuse-for-a-command-line-client... just horrible. I would not use oracle if I can use postgres.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    37. Re:The 8 reasons not to use mysql by EsbenMoseHansen · · Score: 1

      Seeing as you seem to know a thing or two about MySQL...

      So how does its procedural code, trigger capability, and user defined functions compare to Oracle?

      Sorry, I've always avoided the use of stored procedures and their ilk, so I wouldn't know. Small triggers are pretty easy in either. Again, I avoid heavy usage of triggers, since I like my database to be dumb (aka predictable)

      Is it possible to port between them without jumping through too many hoops?
      Does MySQL support partitioning?
      How about performance with large dbs?

      Sorry, I have no idea. In general, mysql performs well with simple queries and poorly with complicated ones. Oracle is a steady mid-level performer, but suffers (like mysql) from heavy tendency to deadlock.

      Finally, I am really not an oracle expert. Most of my knowlegde of Oracle comes from the steady stream of curses from our local "Oracle man". :)

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    38. Re:The 8 reasons not to use mysql by JAlexoi · · Score: 1

      Problem is that most of MySQL developers/admins are gently speaking "baboons with SQL".(Thanks to PHP)
      MySQL gave freedom to be reckless and the developers used it to full advantage.
      So it ends up in fact that MySQL has no or little quality developers and admins, that understand all the RDBMS principles and data constraints/integrity.

    39. Re:The 8 reasons not to use mysql by jonadab · · Score: 1

      > 1 and 2 seem to cancel each other out, as in if #1 is an issue for you, #2 probably wouldn't be.

      The author does not express himself well, but I think what he's really getting at with these two is that MySQL is not available under the BSD license, so you can't build it into a proprietary product without paying licensing fees. There might be some scenarios in which this situation would cause you to go with Postgres instead.

      And if you *are* willing to pay licensing fees, then you have to compare MySQL against the various proprietary options, not just Postgres.

      If you're planning to GPL your product anyway, then this is all totally not an issue for you. It's also not an issue if you're not building the database into a product that ships, but just using it internally as a database.

      When it's all said and done, these two articles add up to a whole lot of nothing. MySQL has always had lots of people saying good and bad things about it. Postgres has fewer people talking about it, but it's all good: I've never heard anyone say anything bad about it. Oracle is the industry leader: it costs a lot of money, but that's its big drawback. Choosing Oracle is largely a matter of budget: either what you're doing is sufficiently lucrative that using Oracle gains you more than it costs, or not.

      The other biggie is MS SQL Server. Having used it at work, the most positive thing I can say about it is that it's significantly less expensive than Oracle. The main scenario in which you would choose it is if you're pretty much an all-Microsoft shop, using NT-style "domain"-based networking, Visual Studio, Exchange, and the whole nine yards. (We didn't choose it. We have it because an ISV chose it to build their product around. We chose that product because it was quoted to us ten thousand dollars cheaper than the next lowest, and at the time we were making the decision we were looking at upcoming budget cuts of unknown severity.)

      --
      Cut that out, or I will ship you to Norilsk in a box.
    40. Re:The 8 reasons not to use mysql by rbanffy · · Score: 1

      Sorry. I was talking about the truncation of data, not the other way around.

    41. Re:The 8 reasons not to use mysql by rbanffy · · Score: 1

      Sorry. What I wanted to say is that they never, ever, should think it's acceptable to truncate data that does not fit.

      It's kind of the "On Error Resume Next" mentality that some VB programmers use (or used, 10 years ago, when I still worked at consulting for companies whose in-house programs were too buggy).

    42. Re:The 8 reasons not to use mysql by Anonymous Coward · · Score: 0

      MySQL has command line completion in the Enterprise versions of their software:

      mysql> select * from t
      t1 t1.i t1.j t1.k test

      It depends on the differences between readline and libedit libraries..

    43. Re:The 8 reasons not to use mysql by jZnat · · Score: 1

      Why don't people just store the data as a Unix time_t timestamp? Just use the INTEGER data type and you're set. Works best on a 64-bit machine of course unless you want to suffer the 2038 bug...

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    44. Re:The 8 reasons not to use mysql by jZnat · · Score: 1

      Now that you mention this, how hard would it be to write a simple readline-based interface for pretty much any RDBMS? If you've got an API in which you can plug directly into, and if you've got a list of all the possible things that can be done with the database (or at least a general method to finding them from the database itself), it should be rather trivial to create something like this.

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    45. Re:The 8 reasons not to use mysql by Anonymous Coward · · Score: 0

      > Why don't people just store the data as a Unix time_t timestamp? Just use the INTEGER data type and you're set.

      That's great for UTC, but as the GP said, what about time zones?

    46. Re:The 8 reasons not to use mysql by LLuthor · · Score: 2, Informative

      Last I used it, mysql never needed to use a cost-based optimizer simply because it never could do anything but nested-loop joins. Sadly this means that ANY non-trivial query can bring mysql to its knees for ALL users connected to that server instance.

      Compared to PostgreSQL's optimizer, which tried very very hard to avoid nested loop joins, and can handle medium sized queries (upto around 16-table joins) with relative ease, its a real burden to port apps to work with mysql.

      --
      LL
    47. Re:The 8 reasons not to use mysql by EsbenMoseHansen · · Score: 1

      MySQL has command line completion in the Enterprise versions of their software:

      mysql> select * from t
      t1 t1.i t1.j t1.k test

      It depends on the differences between readline and libedit libraries..

      Noone disputes mysql has commandline completion. It's just not a very good command line completion, as your example above shows... right there, you need a table, so t1.j (a column, I presume) makes no sense. In other words, the completion has no regard for context, and doesn't complete on the sql itself. Compare to psql:

      vetty_development=# SE
      SELECT SET
      vetty_development=# SELECT * FROM
      appointments clients information_schema. patients_id_seq pg_temp_1. public.
      appointments_id_seq clients_id_seq patients pg_catalog. pg_toast. schema_info
      vetty_development=# SELECT * FROM clients WHERE
      address email first_name home_telephone id last_name mobile_telephone work_telephone
      Actually, I find that the psql could also use some improvements... it often fails to find any completions.
      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    48. Re:The 8 reasons not to use mysql by larry+bagina · · Score: 1

      Historically, MySQL has allowed invalid input (like the dates feature) and also silently truncated or altered invalid input (like sticking 257 into an 8-bit integer). I understand with v5 you can set 20 flags so it will work like a real database. Maybe.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    49. Re:The 8 reasons not to use mysql by EsbenMoseHansen · · Score: 1

      Now that you mention this, how hard would it be to write a simple readline-based interface for pretty much any RDBMS? If you've got an API in which you can plug directly into, and if you've got a list of all the possible things that can be done with the database (or at least a general method to finding them from the database itself), it should be rather trivial to create something like this.

      mysql and postgres both use readline, I believe. Oracle, db/2 and that ilk cannot:

      Readline is free software, distributed under the terms of the GNU General Public License, version 2.
      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    50. Re:The 8 reasons not to use mysql by larry+bagina · · Score: 1

      Also, pre 1970 time_t support is inconsistent.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    51. Re:The 8 reasons not to use mysql by Anonymous Coward · · Score: 0

      I'm Jewish you insensitive clod already!!!!

    52. Re:The 8 reasons not to use mysql by Hognoxious · · Score: 1

      If they are trying to maintain backwards compatiblity with older versions I would go for a newer fresher product.
      I'd go for it too - but about a year or two releases later, after all the dumbass bl33ting edge clowns like you have discovered all the bugs.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    53. Re:The 8 reasons not to use mysql by Just+Some+Guy · · Score: 1

      Sorry. I was talking about the truncation of data, not the other way around.

      Gotcha. I'd hoped that I'd misunderstood you. :-)

      --
      Dewey, what part of this looks like authorities should be involved?
    54. Re:The 8 reasons not to use mysql by bigtrike · · Score: 1

      It makes it hard to do date/time math involving anything more than subtraction in the database (especially involving time zones), makes the data human unreadable, storing dates in the past is a bitch (they might be 0, which is also the failure code for some epoch functions), some systems don't support negative values, and error handling is even more painful.

      As long as your database deals with dates and times in a sane manner, there are absolutely no benefits to storing as an integer.

    55. Re:The 8 reasons not to use mysql by metamatic · · Score: 1

      Why don't people just store the data as a Unix time_t timestamp?

      a) Doesn't let you store time zones.
      b) Doesn't work for dates before 1970.
      c) Doesn't let you store times in the future with 1-second precision, because the dates of leap seconds aren't determined more than a few years in advance.
      d) Not human-readable.

      Other than that, great idea.
      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    56. Re:The 8 reasons not to use mysql by Anonymous Coward · · Score: 0

      some of points are simply not true:
      since version 5.1 mysql supports multiple indexes and partitions.

    57. Re:The 8 reasons not to use mysql by Anonymous Coward · · Score: 0

      and again 5.1 has MVCC support.

      And mysql cluster has high availbility solution

    58. Re:The 8 reasons not to use mysql by Anonymous Coward · · Score: 0

      and again 5.1 has MVCC support.

      That's what they said about 5.0 and InnoDB too.

      And mysql cluster has high availbility solution

      This is the problem with MySQL. They spend more time and money advertizing new features rather than programming them correctly. We are at 5.0.4x versions already and fundamental bugs with triggers, stored procedures and replication are still outstanding. Cluster, similar to these features, is not fully programmed and ready for prime-time real production environments. Sure, they claim, we have this feature and that feature. Don't believe it - all of them come with *s, gotchas, and critical bugs that make they pretty much unusable for a lot of tasks.
    59. Re:The 8 reasons not to use mysql by spyowl · · Score: 1

      since version 5.1 mysql supports multiple indexes and partitions.

      Not sure what this means - they support multiple indexes now too. They are just not used effectively as you would expect from a decent RDBMS.
      As far as the partitions, 5.1 hasn't come out yet, and the most recent 5.0.xx "stable" release is still filled with critical bugs that prevent 5.0 features from being usable. It looks like they are pressured from the marketing department to get these features out the door without programming them correctly. These "advanced" features should be labeled as experimental at best.
    60. Re:The 8 reasons not to use mysql by umeboshi · · Score: 1

      I suppose it is truly silent! :)

    61. Re:The 8 reasons not to use mysql by Amadodd · · Score: 1
      Because it is clunky.
      First off you can't read 117882759 as 2007-05-25 08:45:59 so it makes your result sets less readable.
      You have to use inline userdefined functions all the time when you need to convert back to normal dates - good luck if your DB does not support those.
      You throw away the built in date/time arithmetic included in the DB. For instance, how would you write this query:

      select datepart(year, OrderDT), datepart(month, OrderDT), count(*) as OrderCount from Orders group by datepart(year, OrderDT), datepart(month, OrderDT)
      --
      Freedom of speech doesn't come with bandwidth.
    62. Re:The 8 reasons not to use mysql by Ed+Avis · · Score: 1

      Heh. 'Feb 30th' is just one particularly silly example I picked of MySQL behaviour. The new default is just as stupid IMHO (what sort of date is 0000-00-00, and how can it get stored in a date column?). It's not a difficult concept to grasp or to program, to check a date for validity, so I'm pretty surprised that MySQL is still choosing a weird default behaviour.

      --
      -- Ed Avis ed@membled.com
    63. Re:The 8 reasons not to use mysql by richlv · · Score: 1
      i somehow did not ask this question right away, but hey, i hope it's ok :)

      Horrible codebase: If you are at least a decent programmer, please have a look at MySQL code: monolithic, one main file with succession of countless if blocks for parsing, optimizing and running queries; features such as triggers, stored procedures, and replication visibly hacked in to the existing "bad" design.

      being no programmer at all, i wanted to ask - is this all of the codebase or parts of it ?

      for example, is this limited to the shared code or storage engines ? if the engines, which ones are worst, which are better ?
      what about first versions of falcon, is that an improvement from code organisational point of view ?

      if "main" part is also badly organised, approximately how much of mysql functionality is in there, and how much is in the engine ?

      what i meant - if the "main" stuff is acceptable, messy engines (like myisam/innodb) wouldn't be the biggest problem, as falcon, being designed from the scratch, should resolve these problems.
      if that's the main part, and it is a large part from mysql, that's probably worse.
      --
      Rich
    64. Re:The 8 reasons not to use mysql by Cramer · · Score: 1

      So how does its procedural code, trigger capability, and user defined functions compare to Oracle?
      They don't. Oracle has a real programming language... PL/SQL. However, many will say writing library code for mysql is easier -- I'm one of them because I prefer C/C++.

      Is it possible to port between them without jumping through too many hoops?
      NO. Applications written for MySQL tend to have bits of MySQL "hackery" wired all through them for dealing with the way MySQL isn't a real database -- like truncating data without error, etc. Oracle applications will almost always have complex queries that MySQL *cannot* process AT ALL. (and if it does understand the query, it'll take days to give the correct result(s).) MySQL has gotten better in this respect since v3, but it's still a joke for any serious use of SQL.

      Does MySQL support partitioning?
      No. Or at least, not the last time I looked. I think v5 introduced the ability to have multiple files for one table, but writes land in the last file; and an index is still one file.

      How about performance with large dbs?
      MySQL performance drops measurablly the larger the database tables become. Oracle scales very well to HUGE tables -- due in large part to partitioning and efficient index usage.

      For small "junk" sites, MySQL gets the job done nicely... for free; and "free" is a very powerful motivator. (Btw, one can use Sybase ASE for free, too, but very few people do.) If you're serious and care about your data, as a rule, you don't use MySQL. Wikipedia does, but they're insane. (read above re: free)
    65. Re:The 8 reasons not to use mysql by spyowl · · Score: 1

      being no programmer at all, i wanted to ask - is this all of the codebase or parts of it ?

      Parts... however, important parts. InnoDB itself is a well-designed concept and looks great on paper. But when married to existing MySQL code a lot of limitations and bugs are introduced.

      for example, is this limited to the shared code or storage engines ? if the engines, which ones are worst, which are better ?
      what about first versions of falcon, is that an improvement from code organisational point of view ?

      I've only briefly looked at 2 most common ones - MyISAM and InnoDB. There is no "better" or "worse". MyISAM is a more proven solution with less bugs - the code was and to some extent still is written around MyISAM in mind. However, a server crash could cause MyISAM files in an unreadable state for the server. MyISAM also has a lot less features - e.g. none of those "enterprise" stuff they've been touting like transactions and row-level locking.

      InnoDB "engine" code is mostly separated out with hooks into what you refer to as the "main" part later on. Some InnoDB features and capabilities are restricted due to MySQL design.

      It is important to consider that the "pluggable" storage engine feature in many cases is not a feature at all. It can be an impediment to fully benefiting from any single storage method, as is the case so far with MySQL and InnoDB.

      With MySQL, it's about picking the right tool, or your poison - however you want to look at it.

      if "main" part is also badly organised, approximately how much of mysql functionality is in there, and how much is in the engine ?

      what i meant - if the "main" stuff is acceptable, messy engines (like myisam/innodb) wouldn't be the biggest problem, as falcon, being designed from the scratch, should resolve these problems.
      if that's the main part, and it is a large part from mysql, that's probably worse.

      It's not organized at all and not at all acceptable. The stuff is all over the place. The server was designed with one storage in mind and then had others glued on with a duct tape! Again, InnoDB is great on paper - MySQL cannot use it to its full potential partly because it has to support MyISAM within the same context.
  8. Looking at the 8 reasons not to use MySQL... by ezh · · Score: 4, Funny

    #1. MySQL uses GPL
    #2. MySQL does not use GPL

    close(rantPage);

    System.out.println("Nothing here to see. Please, move along...");

    1. Re:Looking at the 8 reasons not to use MySQL... by zukinux · · Score: 1

      strList=[]
      strList.append("code")
      strList.append("useless")
      for i in $Stupid_Above_Post:
      _____print r"we'll know how to write %s your post is %s while the first poster posted the same message" % (strList[0],strList[1], )
      _____continue
      os.system(r"echo this is not a flame, just once and for all people here need to watch before they post something which seems useful in a code way when It's already been posted")
      return 0

  9. Re:Uh, oh. The pro mysql guy can't count. by Mattintosh · · Score: 5, Funny

    The pro-MySQL "guy" can't pee standing up, either. "He" is a she.

    The anti-MySQL guy is Canadian, though, so he probably doesn't pee standing up either. Lots of beer -> floor -> bladder evacuation. I kid, I kid...

  10. How can the BSD be "too open"? by DaleGlass · · Score: 4, Insightful

    In these situations, if the BSD license of PostgreSQL is still too "open," a commercial license is preferred.
    This is plain bizarre. How can a closed license be preferrable to BSD, when BSD is basically "do whatever you want with it", including closing the source?
    1. Re:How can the BSD be "too open"? by Rycross · · Score: 4, Insightful

      Obviously giving the author credit for originally writing the code is just too demanding.

    2. Re:How can the BSD be "too open"? by RingDev · · Score: 3, Insightful

      And another gem FTA... "Whatever one might say about the strength of MySQL's backers, the fact that the company is not publicly traded means the financials are not required by law to be a matter of public record."

      So we're going to have to trust the software company that won't show us their code, but will show us their books instead of the company that will show us the code, but not the books?!?

      The 8 reasons are completely bunk, I thought I might actually learn something reading that article as we are about to increase our MySQL presence here, but that was a complete was of time.

      -Rick

      --
      "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
    3. Re:How can the BSD be "too open"? by NevDull · · Score: 1

      Perhaps to avoid liability?

      Some of his statements seemed to be about inclusion of the database in another product...

      With the SCO v. Novell lawsuit on the front page, it makes me wonder if this is the underdeveloped idea he was getting at.

      -Nev

    4. Re:How can the BSD be "too open"? by TemporalBeing · · Score: 1

      How can a closed license be preferable to BSD, when BSD is basically "do whatever you want with it", including closing the source?
      Because they don't understand licensing. I've run into the same kind of thing with public domain software. Couldn't plug it in because they didn't understand that you didn't have to pay (or worry about legal issues with) public domain software, but were concerned support might not be there. Well - we had the source, but couldn't integrate it. So it the feature it would have supported got dropped.
      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    5. Re:How can the BSD be "too open"? by DragonWriter · · Score: 5, Insightful

      And another gem FTA... "Whatever one might say about the strength of MySQL's backers, the fact that the company is not publicly traded means the financials are not required by law to be a matter of public record."

      So we're going to have to trust the software company that won't show us their code, but will show us their books instead of the company that will show us the code, but not the books?!?


      In business, this often makes some sense. The purchaser doesn't want to see and maintain the code, that's not their core competency. They want to be assured that, however, the vendor they get support from will be around to provide support in the future. So they are more concerned with the financials than the code.

      Its just outsourcing in its original sense (before what used to be either "overseas outsourcing" or "offshoring" became the dominant definition): focus your company on its primary mission, and contract out for everything else.

    6. Re:How can the BSD be "too open"? by withears · · Score: 0

      Inclusion in some types of government projects is the primary issue. There are many hoops to jump through.

    7. Re:How can the BSD be "too open"? by poopdeville · · Score: 1

      Very odd. Last I heard, MySQL AB was going public anyway.

      --
      After all, I am strangely colored.
    8. Re:How can the BSD be "too open"? by CastrTroy · · Score: 0

      But if you go with MS, which is a company with a good financial record, you can be pretty sure that the system will only be supported for 10 years, unless you upgrade. So, you can either be completely sure that your system will be unsupported, and unsupportable by anyone (at least as far as changes to the code are concerned) in 10 years, or you can take pleasure in the fact that even if MySQL the company went out of business, someone else could, and most likely would, because of it's popularity, start supporting and maintaining it.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    9. Re:How can the BSD be "too open"? by tacocat · · Score: 1

      My company has a policy rejecting the application or use of any GPL or F/OSS software.

      I'm not kidding...

    10. Re:How can the BSD be "too open"? by pimpimpim · · Score: 1
      I didn't read the article, but indeed, what load of BS. Do we need to know their books? Companies might mess with their books to look better for their (porspective) stockholders. In the case of MySQL, I don't know if they sell stocks outside of the public trade, but if so, then I'd say that their openness of their books is a matter of importance only for those who can and want to invest in them.

      Here in Germany there are several supermarkets completely out of public trade. And they are doing very well indeed! They have no reason to mess with their books, because the only thing they could reach with it is fooling themselves. The biggest supermarket from Holland on the other hand (Ahold) is publicly traded, wanted to look good for their stockholders and did so by messing with the books of the (South) American offices (I think that their accountants actually cooperated with it, bad business). This mess had to be corrected, thereby almost bringing the whole company down. I can imagine that if Ahold was not publicly traded, it also wouldn't be so foolish to mess around.

      Look, if a company is publicly traded or not does not tell anything about the quality. For some companies with irregular investments, it might be the only solution. Other companies might need the stability of closed trade, keeping their stocks in their own hand. Opening of the books is a responsibility only for the publicly traded companies, towards the stock holders and those considering to buy stock. In other cases the company only has responsibilities towards itself, you can not even buy stock, and therefore it is none of your business to look in their books or not. For you as a user it is important to know that you buy something from a viable company, but also there just the books don't tell you everything. What if your perfectly open company gets taken over and squeezed out by some investment fond? Could happen anytime.

      --
      molmod.com - computing tips from a molecular modeling
    11. Re:How can the BSD be "too open"? by colinrichardday · · Score: 1

      I'm sure that Enron's customers were counting on having Enron not implode.

  11. Reason 10 for not using by Anonymous Coward · · Score: 0, Redundant
    1. Re:Reason 10 for not using by FST777 · · Score: 1

      Use the Preview Button! Check those URLs!

      That is, unless you WANT us to go to that add-infested parked domain.

      --
      Free beer is never free as in speech. Free speech is always free as in beer.
  12. Additional reason by Phil246 · · Score: 1

    Not all database types are fit for all purposes. Relational databases for instance are bad for data mining/warehousing due to poor query performance but good for data entry due to high transactional performance

    1. Re:Additional reason by Threni · · Score: 1

      > Relational databases for instance are bad for data mining/warehousing due to poor query performance but good for data entry due to
      > high transactional performance

      Two words: Star Schema.

    2. Re:Additional reason by Shados · · Score: 2, Informative

      The more advanced RDBMS engines have OLAP/Datawarehousing support built in. For example, in SQL Server, thats SSAS, and it works wonderfully well, and is as integrated as it can be. Oh, one can argue that its technically a "separate" database, but from an installation, licensing and development point of view, they're one and the same. (Analysis Services also happens to be the market leader in that department...).

      Thats just an example, and while thats Microsoft, I'm sure there are plenty of non-Microsoft equivalents for relational databases and olap cubes being integrated as one (and a half?) product.

    3. Re:Additional reason by dedazo · · Score: 1

      Relational databases for instance are bad for data mining/warehousing due to poor query performance

      Products like Hyperion Essbase have made this argument pretty much obsolete.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
    4. Re:Additional reason by Anonymous Coward · · Score: 0

      This is very true.

      I work for one of the largest Australian-owned information companies, and we use MySQL for all of our data.
      So long as your database is designed properly, and you have properly configured the config file to the specs of your server, MySQL works a treat.

    5. Re:Additional reason by guruevi · · Score: 1

      He wasn't talking about whether or not it's integrated. He's talking about the performance. I can bolt on a datawarehousing application on anything and it will work, the performance is what counts. And I know from experience that MS SQL2005 (what you are talking about since 2000 doesn't have it) is sub-par on performance for that kind of work on very large datasets mainly because of the performance limitations of the underlying system (Windows). Well, the solution is there now (we bought something from one of those big companies that basically sell you their application + consulting for the lifetime of the system) and quite honestly (I'm developing BI for a very large company in the world oil business) it's not what I expect even on the raw dataset (not using their third-party middleware).

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    6. Re:Additional reason by Shados · · Score: 1

      SQL Server 2000 does have OLAP/Datawarehousing. It came in, in the second edition of SQL Server 7, I beleive.

      And I know he wasn't talking about weather or not its integrated. The thing is, he was saying how a relational database won't be on par for performance in datawarehousing/BI environments. That is correct, except when you install SQL Server, you get more than one "engine". The main one that everyone thinks about is a relational database. Analysis Services is NOT a relational database. It is an OLAP cubing environment. You can't do something like that in a relational database. Or well, you can, but you'd have to implement something incredibly complex, error prone, and in the end, probably incompatible with your "main" model.

      So yes: a relational database would SUCK for this purpose. But the more featureful DBMSs have more than just a relational engine in them, in the case of SQL Server with datawarehousing, you end up having "2" databases, one relational, and the other an exact copy, but running on a datawarehousing engine, and it performs crazy well (ironically, we work for the exact same kind of company... I wouldn't be surprised if we worked for the same one in a different branch, to be honest...)

  13. What about condoms? by Anonymous Coward · · Score: 0

    One Size fits all!
    Seriously.
    I know there are different sizes. But is there really a point? They do stretch quite well

    http://www.metacafe.com/watch/335285/how_strong_is _a_condom/

  14. Reasons not to use MySQL? These are stupid reasons by Tairan · · Score: 5, Informative

    Someone need's to slap this author with large trout. There are many reasons NOT to use MySQL, of which this article touches on only one. For example:
    --Innodb scaling across multiple processors (MySQL bug ID 15815, still not completely fixed)
    --Limit of 1024 current transactions ( MySQL bug 26590)
    --Terrible performace when running MySQL Cluster
    --Single threaded mysqldump exporting and importing (recently fixed in 5.1)
    --Single threaded replication (making many changes? Don't count on it if you're running replication)
    --Poor handling of subselects
    --ineffecient ORDER by and GROUP BY
    --Poor quality filesort algortythm (want to see your $20,000 dollar database server die?)
    --better performance in 4.1.x

    Let's also mention that 5.1 has been out in beta for years now. When is it ever going to ship? MySQL now is proclaiming fixes in 5.2, and 5.1 isn't even on the board to ship yet.

    With all that, and more, I'm surprised this author could only come up with "it isn't made by Oracle" and "product mateurity."

    *disclosure -- yes, I play with MySQL databases all day long in large high use production environments. MySQL is great for small systems, but there -are- some problems when running on large enterprise grade systems. It'll get there

    --
    /. is a commercial entity. goto slashdot.com
  15. Okay, 5-1/2 reasons not to use MySQL. by Chas · · Score: 1

    Two of them are "The GPL can cause you problems."

    Two of them are "Product Maturity".

    And one is "Someone might think it's not scaleable". Possibly valid. Probably not.

    --


    Chas - The one, the only.
    THANK GOD!!!
    1. Re:Okay, 5-1/2 reasons not to use MySQL. by hobo+sapiens · · Score: 1

      'And one is "Someone might think it's not scaleable".'

      Yeah, I liked that too. I mean, get serious. That's right up there with "Tony thinks that the probability is high that orangutans may one day be expelled from Don's anus. We'd better take precautions."

      --
      blah blah blah
  16. What a fascinating argument. by jd · · Score: 1
    It's almost impossible to say what the pros and cons are, when people usually stack or otherwise mix-n-match database products according to need. Even within the same organization, even within the same department, there will likely be servers that would benefit (if they're not already) and servers that would benefit from something else.

    And that's before you get into "which MySQL are we talking about anyway" debates. There are multiple configurations for how the tables are stored, for example. Then there's MySQL vs. MySQL Max (which is a different product).

    Oh, and the data is very important. Not everyone knows how to draw up an entity-relationship diagram, let alone build an optimized database from one, and different databases will lean towards different optimization methods.

    The sheer number of permutations of configuring MySQL, of using MySQL, and of using MySQL in conjunction with other products, is so great that a simple list is useless. What would be more useful for people would be a sizable table which lists different types of scenario and different types of usage against different database engines.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  17. Re:Warning: mysql_connect(): Too many connections by nuzak · · Score: 4, Informative

    No, that's part of the "8,573 reasons to not use PHP" article.

    --
    Done with slashdot, done with nerds, getting a life.
  18. Summary of both articles by foniksonik · · Score: 0, Troll

    If you're cheap but adventurous and willing to risk a little maturity for a fast growing, easy to support DB, pick MySQL.

    If you're a tight-ass who is insecure but is willing to spend money on something that's been around as long as you've been an adult or you've got an expensive DBA who's like this... pick Oracle (or some other proprietary RDBMS).

    --
    A fool throws a stone into a well and a thousand sages can not remove it.
  19. GasPerson by Anonymous Coward · · Score: 0

    Tina is a GasPerson! Shes pissed off with MySQL because its not so gasy!

  20. Re:Warning: mysql_connect(): Too many connections by DarkSkiesAhead · · Score: 4, Insightful

    Warning: mysql_connect(): Too many connections ?
    That warning should really read: "Warning: crappy sysadmin" No reason to see it on a well-run site.
  21. Easy To Use by djsparhawk · · Score: 1

    One of it's strongest points is that it's easy to use and manage. It's incredibly flexible and you don't need to be a DBA or hardcore programmer to work with it. As a Unix system admin I often find myself needing a small fast database to store a few bits of information for management tools. Yum install mysql && yum install php and off you go.

    1. Re:Easy To Use by froggero1 · · Score: 1

      [froggero1@lillypad ~]$ yum install mysql
      bash: yum: command not found, apt-get rocks your world

      while we're on it, vim > emacs, kde > gnome, apples > oranges, and blue > red.

      --
      ~/.sig: No such file or directory
    2. Re:Easy To Use by djsparhawk · · Score: 1

      Apt-get is cool...
      # apt-get install yum

      I'm with you except !(apples > oranges)

    3. Re:Easy To Use by froggero1 · · Score: 2, Funny

      but oranges are sticky... and very inconsistant, sometimes you get really sour ones, no real warning sign of that. apples at least you know what you're getting... if it's squishy, it'll be gross and brown inside.

      unless you include green apples in that debate, those ones can be pretty effin random. i don't like those ones much.

      hmm... i need to do some more considering on this debate.

      come to think of it, christmas oranges rock the house... so i guess if your comparing christmas oranges to green apples, then yeah, oranges > apples. but i think on average i'm still going to go with apples > oranges just based on sticky fingers and the potential of unexpected sourness.

      --
      ~/.sig: No such file or directory
    4. Re:Easy To Use by It'sYerMam · · Score: 1

      Sour oranges are the best though - the real problem is when they're all dried up and shrunken like an old man's face. Like the one I had today. Apples are more consistent though - but the mushy ones are still pretty vile.

      --
      im in ur .sig, writin ur memes.
    5. Re:Easy To Use by Anonymous Coward · · Score: 0

      Why bother? That's what SQLite and BerkeleyDB are for.

    6. Re:Easy To Use by Anonymous Coward · · Score: 1, Insightful

      Its just as easy to install sqlite or postgresql. Sqlite is either to admin than the other two since its not a daemon, just a lib to read/write the files. Use sqlite for single user or small stuff. Use postgresql when you need a database server. Mysql just doesn't fit in at all.

  22. Is that from Inman or Kimball? by VampireByte · · Score: 1

    Do you propose using flat text files for data warehousing?

    --

    Run and catch, run and catch, the lamb is caught in the blackberry patch.

  23. Better title by Anonymous Coward · · Score: 0

    A better title would have been Dissagreements between a TodeRash and a GasPerson. Are these names real?

  24. Re:Reasons not to use MySQL? These are stupid reas by iknownuttin · · Score: 4, Insightful
    --Innodb scaling across multiple processors (MySQL bug ID 15815, still not completely fixed).....

    The audience for both articles are for IT (upper)mangers. Most of your argument above would be better off for the technical lead whose doing the report for his immediate manager (maybe technical) who'll then give a report to the CIO or even to a manger below him that would say:

    MySQL (GOOD)
    Oracle (GOOD but expensive)
    Excel (BAD)
    Not that those managers inherently stupid (hope not), it's just that their more concerned with the bigger picture and the resultant budget.

    --
    I prefer Flambe as apposed flamebait.
  25. Who am I Supposed to be Rooting for, Here? by hardburn · · Score: 0, Flamebait

    The MySQL supporter is raving about the large talent pool of MySQL developers, and the detractor is raving about the GPL.

    Yes, there are lots of people who have "MySQL" on their resumes, right next to "PHP". They're all clueless ninnies. If they weren't clueless ninnies, they would have chosen PostgreSQL years ago. Yes, you can hire clueless ninnies on the cheap. That's not the point.

    What does the license have to do with it? I can conceive of a project where I'm going to be bundling up a database with my application and selling it. Why would your code be so deeply integrated with the database that you legally have to sell the whole thing under the GPL?

    --
    Not a typewriter
  26. RIDICULOUS! by erroneus · · Score: 1

    If 1 and 2 are both valid reasons, then all RDBMSs are just as unacceptable for use depending on which of the two reasons fit the situaiton. For that matter, all software... everything... everyone!

    No seriously, I don't get it. Why is being under the GPL a bad thing?

    1. Re:RIDICULOUS! by Anonymous Coward · · Score: 0

      Yeah, some of the eight reasons were pretty weak, like how using Oracle, MS SQL and DB2 together is fine but throwing MySQL into the mix would be the straw that broke the camel's back. Ridiculous.

      And code maturity?! Oracle is the supposedly enterprise-level RDBMS and they actually created a new data type (VARCHAR2) rather than fixing a bug with the original! But I guess being publicly traded makes that acceptable.

      In the article, the author talks about how claims like "10% more features" are meaningless (and I agree) but the way he is scrapping for dirt on MySQL, I feel like he was just going for "60% more minuses than pluses."

  27. lame "bias" argument by CodeMunch · · Score: 2, Insightful
    FTFA:

    One trend I have observed but for which I have no hard data is that formally trained DBAs tend to prefer a proprietary RDBMS such as (most commonly) Oracle. I suspect that those with formal training and experience as a DBA (rather than as a software developer) tend to have a bias toward proprietary systems.

    Due to tue relative low incidents of formally trained Oracle DBA's being mauled by Tigers, you could also infer that formal Oracle DBA training will also protect you from Tiger attacks. (To re-use & mash up that old cliche).

    What a lame argument. Of course there may be some bias, but the fact is that: Oracle kicks every other RDBMS at pretty much everything: Stability, speed (optimizations up the wazoo), features, consistency.

    To be able to manage these systems efficiently & keep a "Q9" system up & running, the formal training certainly does help but I would argue is not required as the documentation is pretty damn helpful unless you get one of those wonderful ORA-600 errors (is that the magic "WTF" Oracle error? I can't recall).

    Sure - the woo of mega bux will entice many into Oracle DBA training but the weaker resources fall off quickly. You can't fake it when your production system is down.

    IANAODBA

  28. Lame comparison by EatAtJoes · · Score: 1

    Even though the negative article is imperfect at best ("Perception of Scalability"??), at least it actually comes from someone who seems to understand the world of databases.

    The positive article, though, is ridiculously weak, riddled with IT-journalist misconceptions (AJAX is a language? Scalability is achieved via ... stored procedures??). As such it's an unfair match.

    On the positive side, what about:

    1) MySQL is FASTER. Cite some research of the shootouts. MySQL always does well.
    2) MySQL is OPEN SOURCE (at least the negative article addressed this, although in a stupid fashion). Journalists don't seem to get how much better it can be to work with a product with open source, when tracking down bugs, or merely finding good resources (docs, howtos) on the web -- aside from the TCO free-as-in-speech-and-beer aspects.

    1. Re:Lame comparison by larry+bagina · · Score: 1

      MySQL is fast for simple queries. I've seen a lot of anecdotal evidence of mysql sucking for more complex stuff (multiple table joins, large volume sets, etc).

      Example

      We've been running our web site on a MySQL 4.0 database with MyISAM tables, and are currently in the process of migrating to PostgreSQL 8.1 purely on the basis that it's faster. We have two queries that our site uses that, under MySQL 4.0, take over 20 seconds to execute on a dual 2GHz G5 XServe. Some experimentation showed that under MySQL 5.0 these same queries would execute in about 6 seconds. PostgreSQL on a single 1.25GHz G4 machine would execute the same query in just 4 seconds. This is not all that complex a query - it only involves 4 tables.

      Where PostgreSQL really shines above MySQL is when multiple copies of this query are being handled at the same time. If there's 3 of these queries running concurrently then Postgres will deliver its results in about 12 seconds, i.e. 3 times the amount of time. Three of these queries under MySQL however results in them taking about 3 minutes to complete. The performance of MySQL just continues to degrade if you add on more queries - run about 8 of them together and you'll be waiting over an hour for the results. PostgreSQL just scales up as you would expect - 8 queries will complete in 32 seconds.
      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    2. Re:Lame comparison by TheLink · · Score: 1

      Faster?
      http://tweakers.net/reviews/657/6

      OK maybe it's 2 x faster for TPC style stuff, but it had timeout errors in this benchmark:
      http://wskills.blogspot.com/2007/01/postgresql-vs- mysql-benchmark.html

      --
  29. MySQL makes sense... sometimes by R3d+Jack · · Score: 2, Informative

    Many applications need a small to medium size database that contains important but non mission-critical data. MySQL is perfect for those applications. No licensing hassles, no funds requests, no major administrative overhead. I don't have enough experience with MySQL to recommend it for a really critical database, but we do have plenty of need for smaller databases that we can set up quickly. I certainly don't see spending a lot of money on SQL Server (which we are doing) or any other big commercial server to run a bunch of small databases.

    1. Re:MySQL makes sense... sometimes by Shados · · Score: 1

      Thats a bit (but not completly) less true now than it was a few years ago. Most of the commercial databases now have free offerings and can be administrated by a child. If you're on Linux or something, then its nice, its probably just a command line away to install it and then its perfect, yes. On Windows however, might as well use SQL Server Express or something.

    2. Re:MySQL makes sense... sometimes by davidkv · · Score: 1

      Then again, loads and loads of projects are using MySQL. The stuff about MySQL not being good for them might be right, but the abundance of projects/code using MySQL is quite telling.

      Arguing about it is like arguing about favorite colors, and wanting the same color on everything, always.

    3. Re:MySQL makes sense... sometimes by Shados · · Score: 1

      You're totally right and correct, sorry if I wasn't clear in my point. I just meant that "Needing a small DB for a small project, and it has to be free" isn't one of the arguments FOR mysql anymore. There are other arguments of course, but for the SAME reason probably 2/3rd of Oracle users really do so because its "buzz word compliant", and really don't need Oracle, a LOT of MySQL users do it because its all they know and so many people use it.

      Funny enough, if everyone used the right DB for them, the numbers would probably be similar to what they are now, just reversed (a bunch of MySQL user should switch to Oracle, MS SQL, etc, and a bunch of Oracle and MS SQL addicts would use MySQL...)

    4. Re:MySQL makes sense... sometimes by jrockway · · Score: 1

      > MySQL is perfect for those applications. No licensing hassles, no funds requests, no major administrative overhead.

      I use SQLite in those cases. No server to administer, and it's faster (since there's no network latency; the query happens in your memory space). Obviously SQLite is a terrible idea if you need multiple apps hitting the same database... but you often don't.

      --
      My other car is first.
  30. That's not the target audience by Doug-W · · Score: 3, Insightful

    The article is in CIO magazine, none of the downsides you mention is of a concern for a CIO. A Product manager? Maybe, even then probably not.

    1. Re:That's not the target audience by EsbenMoseHansen · · Score: 4, Insightful

      The article is in CIO magazine, none of the downsides you mention is of a concern for a CIO. A Product manager? Maybe, even then probably not.

      If you are in any position where you are choosing between databases, you have three cases:

      1. You understand these issues
      2. You have delegated the decision to someone who does
      3. You are incompetent
      4. You are toying around

      Sorry about the M.P. reference there :o)

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    2. Re:That's not the target audience by Hoi+Polloi · · Score: 1

      Of course if you want to make your product (that runs on a db backend) available to MySQL users then your decision has been made for you already.

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    3. Re:That's not the target audience by SavvyPlayer · · Score: 2, Insightful

      You left out a case:

      5. You have delegated the decision to a well-funded, trusted team of veteran IT decision makers.

      Businesses live and die by information, so the severity of your list of relatively insignificant defects rather depends on the criticality of the data in question. When lives are at stake (economically, physically or medically), when every hour of system downtime costs your operation tens or hundreds of thousands of dollars, decisions are based on higher level concerns. The integrity of the data is paramount. Data moving between mart and warehouse needs to cost as little as possible.

      I'll then hire DBAs who appreciate the chosen technology for reasons that matter to them. If it's MySQL, maybe these are DBAs looking for an opportunity to not only use but enhance the product, and that's fine with me.

      Not to rain on your parade, but _you_ are the suspect DBA the author recommended CIOs ignore when weighing the facts -- that is not to vet his weakly argued list of criticisms, I just couldn't let these posts sit at +5 unchallenged.

    4. Re:That's not the target audience by EsbenMoseHansen · · Score: 1

      You left out a case:

      5. You have delegated the decision to a well-funded, trusted team of veteran IT decision makers.

      I covered delegation above. Veteran is usually means "expensive and outdated", so you might want to go elsewhere for information.

      Businesses live and die by information, so the severity of your list of relatively insignificant defects rather depends on the criticality of the data in question.

      My lists directly translates into bugs ... and therefore downtime. Failing to understand this is very typical of out-of-date (veteran) decision makes --- and people who rely on them.

      When lives are at stake (economically, physically or medically), when every hour of system downtime costs your operation tens or hundreds of thousands of dollars, decisions are based on higher level concerns. The integrity of the data is paramount. Data moving between mart and warehouse needs to cost as little as possible.

      Noone disputes that uptime and data integrity is important. It's just that this is offered by all databases you might consider, if properly setup. In fact, in my career, I have never seen a database-caused downtime. Plenty of other software, and even more so (expensive) hardware. Trying to solve uptime problems with db is trying to optimize the 10% rather than the 90%, I'd wager.

      Not to rain on your parade, but _you_ are the suspect DBA the author recommended CIOs ignore when weighing the facts -- that is not to vet his weakly argued list of criticisms, I just couldn't let these posts sit at +5 unchallenged.

      Well, challenging is good, and I appreciate it. You are somewhat off the mark here, though: I am a mathematician, not a database administrator. (I drive the computer science people nuts because I regard relation databases as set relations). The above 7-list was just to illustrate how bad that list was... even a mathematician can do better.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  31. The article is disappointing. by RedElf · · Score: 1

    If you're going to choose 8 reasons to not use a product then at least back up those reasons. All of the assertive tip toeing is boring, and tells us you don't really think those reasons are all that valid yourself.

    --
    You know, I have one simple request. And that is to have sharks with frickin' laser beams attached to their heads!
  32. Re:Reasons not to use MySQL? These are stupid reas by drinkypoo · · Score: 1, Informative

    Don't forget there's other options. For example, Sybase and MS SQL Server (based originally on Sybase 10) are both faster than oracle and more compliant than MySQL.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  33. Even so it doesn't make sense on its face by Excelcia · · Score: 1

    Even if this is about tight integration of the RDBMS into a redistributable product, the statement about PostgreSQL doesn't make sense. Do what you want with it is always do what you want with it. The author is throwing arguments from different viewpoints out as if they ought to be arguments from one viewpoint. Sure, there are those in the open source community that say BSD is too free that all should be GPL, but that's hardly going to be an argument from a user perspective, no matter what the user wants to do with it.

  34. Re:Reasons not to use MySQL? These are stupid reas by Tairan · · Score: 2, Interesting

    Yes, my arguments may be technical in nature, however the arguments in the article are worse than straw-man arguments. I'm surprised the author didn't mention that MySQL doesn't cost $20,000 per processor, therefor must be bad. Even given the intended audience (who, as you suggested, may not be extraordinarily technical) the pro-MySQL author did a much better job laying reasonable arguments.

    You mention Excel jokingly, but I know some companies which maintain large databases worth of information inside of Excel (statistics on hundreds of applications for hundreds of devices on dozens of networks, reported daily ) because no one wants to write a script to input data into a database.

    --
    /. is a commercial entity. goto slashdot.com
  35. Re:lame "bias" argument by drinkypoo · · Score: 2, Interesting

    Oracle kicks every other RDBMS at pretty much everything: Stability, speed (optimizations up the wazoo), features, consistency.

    Last time I checked, DB2 was more scalable than Oracle (less performance hit as you stuffed the database) and both Sybase and SQL Server were faster.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  36. Re:Uh, oh. The pro mysql guy can't count. by drinkypoo · · Score: 4, Funny

    The pro-MySQL "guy" can't pee standing up, either. "He" is a she.

    Just keepin' it real. Gotta love the internet.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  37. Horribly written article by knarfling · · Score: 3, Insightful

    It is painfully obvious from the article that this writer was or is a consultant. All of the reasons not to use MySQL are PHB reasons. Not one is based on actual abilities or inabilities of MySQL. He seems to be intent on agreeing with a position that he doesn't understand or didn't want to take. "...I'd be hard-pressed to tell a conservative IT manager making a platform decision for a mission-critical application based on this factor that he's doing the wrong thing." Yes, it does sound like he would be hard-pressed to tell any IT manager that the stupid decision he was making was the wrong thing.

    The info at the end of the article says that he guides many projects based on MySQL, but it is hard to believe that he has ever used it. It sounds like all of his research was with PHB's or admins that have never really given MySQL a good try. A good admin knows both the pros and the cons of the software he uses, and hopefully, the good out weighs the bad. Many people that use or even swear by MySQL could give you some good reasons not to use it, under the right circumstances. Obviously, this guy could not find any. Either that, or he did his research in the wrong area.

    I realize that this is the CIO magazine, and that some CIO's really are PHB's. However, Tina was able to write a good article on why a CIO should pick MySQL and give good reasons that were understandable to both technical people and PHB's. The only other conclusion I can come to was that Brent was trying to steer people towards MySQL and thought a badly written article against MySQL was the best way to do that.

    --
    Great civilizations have lived and died on false theories. Don't mess up mine with a few facts.
  38. #2 is not an issue with enterprise applications by anomalous+cohort · · Score: 2, Informative

    If you want to distribute the license for the database along with your own project, your project must either be licensed under a similar compliant license, or you must pay for a commercial license.

    This article comes from CIO website so I think that it if fair to say that they are most interested in applications for the enterprise. Enterprise applications don't bundle the database. They may require a certain database vendor product/version or a small set of database vendors but they don't bundle the database with the application. This is true whether or not you use SQL Server, DB2, Oracle, MySQL, or PostgreSQL.

    IANAL, but IMHO there is no legal restriction to selling a commercial, closed source application that requires MySQL as long as you don't include the MySQL application with it. This isn't a problem for enterprise applications because businesses that need such applications already have sufficient IT experience to run the vendor specific database that they are going to accept. If a company doesn't have sufficient IT experience to do this then they are going to have to go the SaaS route. Their are not going to be able to manage the application even if it did come bundled with a vendor specific database product.

    1. Re:#2 is not an issue with enterprise applications by Evets · · Score: 2, Insightful

      Agreed. Another point to be made is that many enterprise applications use the database layer as a storage mechanism and either don't optimize for the database platform or don't take full advantage of optimization capabilities on individual platforms.

      When it comes down to it, most enterprise apps would not see a significant performance shift in either direction based on platform and in those situations it is better to go with the database vendor with which your staff has the most experience. Enterprise applications rarely support MySQL or even Postgres except via slow ODBC connectivity.

      For those applications that do maintain extraordinarily large data sets and see very high traffic levels there is still the factor of familiarity and experience to deal with. For a cost differential adding up to 100s of thousands of dollars in those scenarios it is unwise to not to at least take a look at open source platforms.

      I could go into which platform I prefer in different scenarios but it's really not a very black and white thing. From a CIO perspective the best thing that you can do is to push software vendors to support open source DB platforms out of the box.

    2. Re:#2 is not an issue with enterprise applications by lpontiac · · Score: 1

      IANAL, but IMHO there is no legal restriction to selling a commercial, closed source application that requires MySQL as long as you don't include the MySQL application with it.
      IIRC, the MySQL client library is as GPL as the server. There are exceptions for PHP (introduced when the GPL license change prompted PHP to move towards sqlite as their by-default database choice) but if you're writing an application in C++ and linking against the MySQL client libraries, you need to either use an ancient pre-GPL version, GPL distributed versions of your software, or purchase a commercial license.
    3. Re:#2 is not an issue with enterprise applications by protohiro1 · · Score: 1

      Where the hell do these "cios" come from? As far as I can tell none of the reasons for or against were particularly relevant. The issue is not MySQL vs Oracle/SQL Server/DB2. It really depends on the application. If transactional integrity is most critical I would go with Oracle (if you have the cash, otherwise PostGres). If integration with microsoft stuff is most critical SQL Server is a no brainer. If the job is some kind of content web site that needs to be quick to start and scale into infinity, MySQL is perfect, especially if performance is going to be more important than transactional integrity. This site seems to confirm my suspicion that the CIOs of the world ought not to be making decisions about implementation unless they solicit a lot of info from the people they have working for them.

      --
      Sig removed because it was obnoxious
    4. Re:#2 is not an issue with enterprise applications by anomalous+cohort · · Score: 1

      the MySQL client library is as GPL as the server

      Right, to avoid any licensing restrictions for your commercial, closed source application that uses MySql as the database vendor, you don't bundle any of the MySql software but you do say in your installation documentation what they need to do to make MySql work with your software including what client libraries to download and install.

      Let me provide an example. I just recently started an open source project. This is obviously not a great example because this project is open source and will always and forever be so. For the sake of illustration, let us pretend that it is a closed source application. The technology is HTML+Javascript on the client and traditional LAMP on the server. There is, however, a small J2SE command line utility included that is useful for publishing content by transferring it from a local instance of MySql to the instance of MySql that will serve the content to the intended audience. I don't bundle or include any MySql code with this project but I do mention in the README file that this utility depends on mysql-connector-java-3.1.14 (not included). Again, I am talking about an open source project but even if this was closed source, I would not be in violation of the GPL because I did not include the MySql driver. I only documented that it needed that driver.

      Of course, in the case of a corporation wanting to acquire and deploy an application that uses MySql, they would prefer to purchase the commercial license. This is precisely why MySql provides one.

  39. Invalid use of the GPL? by dthulson · · Score: 2, Insightful
    I'm a little concerned about MySQL and the GPL... Here are some thoughts of mine about MySQL AB and the GPL: http://www.crownandcutlass.com/blog/2007/01/15/mys ql-ab-and-the-gpl/

    The link I have there for the MySQL internals doc seems to be invalid... It has moved to here: http://forge.mysql.com/wiki/MySQL_Internals_Client Server_Protocol#Licensing_Notice

    Here is a quote:

    Because this is a GPL protocol, any product which uses it to connect to a MySQL server, or to emulate a MySQL server, or to interpose between any client and server which uses the protocol, or for any similar purpose, is also bound by the GPL. Therefore if you use this description to write a program, you must release your program as GPL.
    I don't think that's a valid use of copyright, but I'm not a lawyer. Can anyone explain to me how that's a valid use of the GPL?
    1. Re:Invalid use of the GPL? by cortana · · Score: 1

      Unless the answers you get are transcripts from a court case, they will be meaningless.

    2. Re:Invalid use of the GPL? by mabinogi · · Score: 1

      gah, they're morons. They can't prevent you implementing a protocol. Unless maybe via patents.
      The GPL only works because it provides a restrictive alternative to doing something that you would otherwise not be allowed to do.
      Since they can't prevent you from implementing the protocol, you don't need to agree to a license to do it.

      --
      Advanced users are users too!
    3. Re:Invalid use of the GPL? by Just+Some+Guy · · Score: 3, Insightful

      Because this is a GPL protocol, any product which uses it to connect to a MySQL server, or to emulate a MySQL server, or to interpose between any client and server which uses the protocol, or for any similar purpose, is also bound by the GPL.

      Fiction: the protocol is GPLed. Frankly, that's just dumb; the GPL's scope doesn't include protocols.

      Fact: the MySQL client libraries are GPLed. If you use the official MySQL libraries and wish to distribute your program, your choices are to buy a commercial license or release your code under the GPL. I am unaware of any non-GPL client libraries for MySQL, although I've never had a reason to actually look for them.

      Basically, the author was mostly right, even if for the wrong reasons.

      --
      Dewey, what part of this looks like authorities should be involved?
  40. Re:lame "bias" argument by dedazo · · Score: 3, Informative

    Last time I checked, DB2 was more scalable than Oracle

    That depends entirely on the platforms you happen to run them. DB2 on NT (what used to be called "UDB") is a joke; DB2 on OS/390 is pretty much what defines a "big-iron" database. Oracle on NT is nowhere near as good as it is on Solaris. But Sybase on NT is actually quite good - almost as good as SQL Server on the same hardware. Sybase 12.x on HP-UX is also quite good.

    --
    Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
  41. Supports Cutting Edge Technology by BrandonReese · · Score: 3, Insightful

    MySQL comes prepared to support all the most popular Web 2.0-ish languages, such as Ruby, Ajax and, of course, PHP.

    I've got the php_mysql.so library, but I can't seem to find the MySQL library in my Ajax installation... Oh wait, ajax isn't a programming language. I'm sorry little things like that really get under my skin (e.g calling the CPU "the hard drive", "I've got the Internet on my computer", calling excel spreadsheets databases). In case the author of the article didn't know, postgreSQL also comes prepared to support Ruby, and PHP.

    I also didn't see where they listed phpmyadmin as a reason to use MySQL. Seems like they always use that as one of the reasons.

  42. Re:Reasons not to use MySQL? These are stupid reas by Anonymous Coward · · Score: 1, Informative

    Bzzt! Thanks for playing!

    SQL Server was based not originally based on Sybase System 10. It was much earlier than that. Thats why there is no CT-lib client interface for SQL Server, it didn't appear till System 10.

    Whether either are faster then the big O depends on a number of factors. Traditionally, Sybase has been strong in the Wall St. type businesses where there is a very high OLTP workload.

  43. 8 vs 5? by Anonymous Coward · · Score: 0

    I don't even have to RTFA to know that 8 is more than 5, therefore I obviously shouldn't use MySQL

  44. I tried to pay attention. I really did. by philovivero · · Score: 2, Interesting

    But some +5 commenter pointed out what the 8 points against were, and they sounded lame. Another commenter actually listed 8 real problems with MySQL. But no matter how you slice it, the biggest, baddest, most ass kicking websites on the planet* are powered by MySQL. So... uh... deal with the reality. MySQL isn't going away.

    * Google.
    * Yahoo.
    * Digg**.

    ** Yeh, I'm the Digg DBA.

    1. Re:I tried to pay attention. I really did. by Shados · · Score: 1

      I wouldnt bet my soul on it, but I was under the impression Google mostly used MySQL for internal system uses, not for their actual customer facing services...

    2. Re:I tried to pay attention. I really did. by Anonymous Coward · · Score: 1, Informative

      I think there's a difference between "powered by" and "used by". Google didn't spend 7 man-years creating BigTable for nothing...

    3. Re:I tried to pay attention. I really did. by Anonymous Coward · · Score: 1, Insightful

      Ah, the digg DBA. Thus running a *damn bloody simple* news aggregation site, you're well position to comment on the relative strengths and weaknesses of complex RDMSs. Sure.

      Also, I'm a rubber chicken. Squeak.

    4. Re:I tried to pay attention. I really did. by Anonymous Coward · · Score: 0

      The biggest sites on the web use MySQL? MSN.com uses MySQL?

    5. Re:I tried to pay attention. I really did. by spyowl · · Score: 2, Insightful

      It's a sad day when a comment implying Google and Yahoo search engines are "powered by" MySQL gets a +5 moderation; and then puts Digg in the same category. I thought it was +5 funny, not interesting.

    6. Re:I tried to pay attention. I really did. by Anonymous Coward · · Score: 0

      > Google didn't spend 7 man-years creating BigTable for nothing...

      That's true! It cost them millions of dollars. :)

    7. Re:I tried to pay attention. I really did. by aled · · Score: 1

      I guess you know what your talking. Let me ask a question: do those website use MySql on financial transactions applications? Your applications are surely important to you and high volume, but what kind of apps and transactions are we talking about?
      Some people show concerns of using MySql for mission-critical operations, and I'm not including social networking apps in that category. Digg is very interesting technology speaking BTW.

      --

      "I think this line is mostly filler"
    8. Re:I tried to pay attention. I really did. by protohiro1 · · Score: 1

      Yeah this article sucked, but to be fair websites != to "corporate data stuff". MySQL powers the biggest websites in the world because it is very easy to scale very large if you don't mind a little bit of stale data here and there and transactional integrity isn't all that important. Like, if you are running Yahoo. If you are running a bank MySQL wil not do the job.

      --
      Sig removed because it was obnoxious
  45. Re:Reasons not to use MySQL? These are stupid reas by Anonymous Coward · · Score: 0

    you forgot one big one:

    -- Views do not utilize the underlying table indexes

  46. Re:Reasons not to use MySQL? These are stupid reas by Anonymous Coward · · Score: 0

    For example, Sybase and MS SQL Server (based originally on Sybase 10) are both faster than oracle and more compliant than MySQL.

    That is debatable. Oracle is very good at high levels of concurrent updates & selects to the same data.

  47. Seriously by Vexorian · · Score: 2, Insightful

    For the article writer a product's maturity solely depends on its age.... *thumbs down* I wanted an interesting read and got this?

    --

    Copyright infringement is "piracy" in the same way DRM is "consumer rape"
  48. content-free article by nsayer · · Score: 1

    It was enough that on the 3rd or 4th page of the '8 reasons not to' article that they used the PHB acronym, but then explained it in parenthesis. *TWEEET* Gene police! Out of the pool!

  49. Re:Reasons not to use MySQL? These are stupid reas by Ice+Station+Zebra · · Score: 2, Funny

    --Poor quality filesort algortythm (want to see your $20,000 dollar database server die?)

    What does Al Gore have to do with this?

  50. Re:Reasons not to use MySQL? These are stupid reas by killjoe · · Score: 1

    Doesn't seem odd to be complaining about the speed of mysql cluster when the pgcluster web site hasn't been updated since 2005?

    --
    evil is as evil does
  51. Re:Reasons not to use MySQL? These are stupid reas by atomic777 · · Score: 1

    I agree with you that the author has not made a single insightful comment. But you are looking at MySQL as an Oracle DBA which isn't much better. I don't disagree with any of your points - they are all valid issues and are a result of MySQL not being used extensively on Big Iron in favour of clusters of commodity hardware. It comes down to the right tool for the job, and writing and architecting your application with the strengths and weaknesses of the DBMS in mind. Database neutrality is a great ideal, but for anything high-performance its unrealistic, and when taking an application written for one database and running it on another, downright unfair

    e.g: Limit of 1024 current transactions (bug 26590). Why are you running so many simultaneous transactions on one box? Partition your data and take advantage of the fact that MySQL runs incredibly fast on cheap hardware and that you aren't limited by license cost.

    If large web-based social networking sites with millions of hits per day can make MySQL work for their needs, it can work for you too. Don't expect your application written for Oracle to run flawlessly on MySQL without some tweaking, though.

  52. Scaling, robustness, etcetera. by seebs · · Score: 4, Informative

    I recently started looking into databases, and I asked a bunch of friends. All the experienced ones gave roughly the same advice: If you don't have time to read directions, just throw something together with MySQL. It'll be okay. PostgreSQL would be better.

    So I took the extra ten minutes, and I'm pretty happy.

    Every large site I know of that uses MySQL has had scaling problems of one sort or another under load, usually to do with trying to handle multiple writes to the database. At least a few people have simply swapped in PostgreSQL and seen problems disappear instantly. One friend did performance testing, where what he found was that MySQL was faster for small sets of clients, but that it slowed down faster, and that for largish N, he couldn't get it complete the test on the available hardware, but PostgreSQL just ran.

    Having set up both a few times now, and having debugged problems with both, there is simply no way I'd use MySQL given any choice at all. It runs, but it feels accreted rather than designed. I know, Cathedral and Bazaar and all that... But there are times when you really do want the feeling that someone considered something up front.

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    1. Re:Scaling, robustness, etcetera. by BerntB · · Score: 1

      MySQL has had scaling problems [under load] with trying to handle multiple writes to the database.

      Was that with InnoDB too?

      (My only showstopping problem with either one is that PostgreSQL had bad support for sorting on different character sets on a table basis. Didn't even sort on spaces for many collations, iirc. Don't know if I did something wrong or if it is better in the last version.)

      --
      Karma: Excellent (My Karma? I wish...:-( )
    2. Re:Scaling, robustness, etcetera. by mshurpik · · Score: 1

      MySQL is a simulated RDBMS, it was bound to have some problem.

  53. Re:lame "bias" argument by CodeMunch · · Score: 1
    You are likely absolutely correct about DB2 - I've never had the pleasure of using it.

    In datawarehouse environments & app environments I've always seen more Oracle than SQL server. For speed/stability I've always had more success with Oracle but have no qualms with SQL Server - it is mighty fast and easy to use(ducks & dodges eggs & rotten tomatos) but I've queried sql server to a crawl more often than I ever have an Oracle db.

    We have an instance of Sybase where I'm at now but haven't given it a thorough thumping yet.

    I guess my original comment should have specified "in general". Anyway, the point is, There are a helluva lot more reasons than "formal training" for choosing Oracle more often than others.

  54. Why Not Use MySQL by smist08 · · Score: 2, Insightful

    From my own experience one of the main problems is a misleading feature set. When you choose MySQL you then have to choose one of five or so ISAM packages for it to sit on. This is a problem since they all have difference features. Do you want the one that supports multi-user, the one that is fast or the one with transactioning. Personally I want all of those and can't get them. Then we had problems with a number of queries where we had the where clause specify fields in the primary index and the optimizer cleverly would always do a table scan. Asking MySQL support led to the answer that we should edit the source fix the optimizer and submit it back to the project. A bit beyond the scope of our little project. Seem that MySQL is good for web applications where a web server talks to it with one connection and each exchange is atomic, so multi-user and transactioning support isn't needed, so you can use the fast/light isam package.

    1. Re:Why Not Use MySQL by Anonymous Coward · · Score: 0

      I find this an interesting comment - as this is not something that support engineers ever say to customers. Ever.

      --Yes, I am a MySQL Support Engineer

  55. Re:Reasons not to use MySQL? These are stupid reas by Shados · · Score: 1

    The catch is that large web based social networking sites are fairly simplistic when it comes to the database design. In more "enterprise"-like apps (I hate overusing that term, since what it means is so vague, but Im sure you can guess), the amount of joins and long running transactions and datamining queries you need to make will almost systematically trash MySQL to the crawling point.

    So you're right on most everything else you said, but comparing web based social networking sites (which have incredible amounts of simple queries, the vast majority that are reads) to, well, EVERYTHING ELSE, is a bit unfair too :)

  56. Re:Reasons not to use MySQL? These are stupid reas by oGMo · · Score: 2

    PostgreSQL (AWESOME and FREE)

    And PHBs can spend budget on paid support.

    --

    Don't think of it as a flame---it's more like an argument that does 3d6 fire damage

  57. hmmm, very incorrect by kpharmer · · Score: 4, Informative

    > Not all database types are fit for all purposes. Relational databases for instance are bad for data mining/warehousing
    > due to poor query performance but good for data entry due to high transactional performance

    Your information is incorrect:
    1. relational databases have been used for warehousing and reporting (data marts) for 15 years - and are used for more than any other solution for this purpose. Ok, sure you've got a lot of OLAP out there, but there's probably almost as much Relational OLAP (ROLAP) via Microstrategy, etc as there is true OLAP.

    2. Take db2 for example, it:
            - support three different forms of range partitioning (union-all views, multi-dimensional clustering, and range partitioning)
            - supports hash-partitioning of the data across many servers - think "beowulf cluster"
            - given the two above you can spread your data across 100 4-way servers, each with fibre access to a heavily-cashed SAN.
            - Now when you issue a query db2 will spin up all 100 servers - each hitting its own local piece of the data (not 100 copies of the whole data, but each server with 1% of the whole).
            - Because it also supports range partitioning each server is probably only going to scan 10% of the total data in a typical query.
            - Because it support query parallelism it'll split each query on each node into four separate pieces (getting near-linear performance speedups) - now you've got 400 cpus working.
            - Because its optimizer is about the best one on the market - it isn't going to auger itself into the ground on your 100 line sql query.
            - That should allow you to crunch down a billion rows to your 24 row output in couple of seconds at most.
            - Of course, it's also smart enough to rewrite your query to automatically hit any summary table that could speed the query up. So, it may only have to scan 2400 rows - and may return the results in 0.001 seconds.

    3. The point is that warehousing, reporting and analytics work very well in a relational environment. But you need to pick your products well. If you want to handle terabytes of data you can put it in MySQL, SQLite, MS Access, Foxpro, etc - if you really had to. But, life will be *far* easier if you put it into a product that can handle the volumes much better.

    1. Re:hmmm, very incorrect by Anonymous Coward · · Score: 0

      > If you want to handle terabytes of data you can put it in... MS Access.

      I realise you're joking, but a sales guy with a few week's experience and a bunch of ill-informed big ideas is a dangerous thing. So to put the record straight: MS Access stores databases in a file and the file size is limited to a few GBs and is not suitable for multi-user networked usage. Pendantic but true: you can't (and shouldn't try) to store TBs of data in Access.

    2. Re:hmmm, very incorrect by dkf · · Score: 1

      If you want to handle terabytes of data you can put it in [...] SQLite [...]
      You could, but the author of it doesn't recommend it (it's designed for smaller embedded databases, not massive data warehouses). He reckons that if you're doing that sort of thing, a good upgrade path is first to PostgreSQL and then Oracle.

      Myself, I work in an Oracle shop anyway; since we have DBAs on staff and all the licenses we'll ever need, why use anything else? :-)
      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    3. Re:hmmm, very incorrect by Anonymous Coward · · Score: 0

      > Pendantic but true: you can't (and shouldn't try) to store TBs of data in Access.

      Thanks for the correction - i was just assuming *somebody* had tried it. Just thinking about that makes me wonder if Microsoft has some great stories in ms access support of users ticked off because they can't store 2 TB of images, etc in access.

  58. Re:It gets worse... by symbolic · · Score: 1

    If you read a little further you'll discover that a reason not to use MYSQL is because you're already using something else. um, DUH?

  59. One-Sided by Anonymous Coward · · Score: 0

    Wow, talk about one-sided. That was ridiculous. I think MySQL is great, and I use on almost every project I work on, but even I could come up with a better list of reasons not to use it.

    The first two reasons not to use it are "It's GPL licensed" and "It's not GPL licensed". Neither one of which are very good reasons not to pick an otherwise effective tool.

  60. Product maturity? by seaturnip · · Score: 1

    The anti-MySQL guy says the first release of Oracle dates from 30 years ago, whereas the first release of MySQL dates from 15 years ago. Uhhh... I'd like to know if there's a single line of code in Oracle dating from 1980.

    1. Re:Product maturity? by Anonymous Coward · · Score: 0

      Yes.

  61. Fish 'n' Chips by turgid · · Score: 0, Offtopic

    When I were a lad, we used to go to the swimming pool and on the way home go to the chip shop for fish and chips or chicken and chips. Those were the days before dad was a wuss and he had a car with a powerful engine.

    Since dad got old and mellow and concerned about saving money, he uses MySQL despite the fact that PostgreSL has a better license and now I am allergic to the batter on the fish.

    My brain has gone and I forgot the point of this post...

  62. Why NOT to use MySQL by buss_error · · Score: 3, Informative
    I find that Brent Toderash's comments tend toward a faint aroma of FUD, while Tina Gasperson didn't exactly hit a hole in one with two of her five comments. Brent's comments seem to be more of "It's open source, it's not open source", certification of training issues, and in general only one half assed comment about the technology itself, which even he doesn't pretend to offer supporting evidence for.


    Tina is dead bang on with the TCO commnet; We pay more for Oracle support than we pay two Certified DBA's.

    Brent's comment about "ignorance" of workers not knowing a company has a site license for propertiery systems is not a technology fault, but a management fault. That cannot be properly consider a fault of the technology.

    Seems to me to be a send up. A trial ballon to support a future brochure slick about why paying $$$ for an RDBMS makes sense and why something "Free" isn't. We all know that using open source isn't free unless you have unlimited staff time and don't count system administration costs against a particular project. Open Source CAN cost a lot more than a closed source system, but it's not something I've seen. I'm sure there are examples, I just don't know of any.

    There are also times when open source doesn't make sense. Like in situations of unlimited libility in case of failure. Take a nuke reactor. Say you use open source products to control that reactor, and it melts down because a pump failed to start, a valve was incorrectly closed, and humans didn't follow proceedures. Automatically, it's the fault of the open source product, obviously, because you were too cheap to go buy "good" software.

    Until the human race as a whole can value a gift freely given by a stranger, it won't grow much past it's current point.

    --
    Necessity is the plea for every infringement of human freedom. It is the argument of tyrants; it is the creed of slaves.
    1. Re:Why NOT to use MySQL by nebosuke · · Score: 1

      It seems likely that Brent's article is a backhanded attempt to get more people to adopt MySQL, as he lists himself as a MySQL user at the end of the article.

      There is no shortage of substantial reasons MySQL may not be suitable for any given project, and yet he somehow managed to somehow pick, almost without exception, the most irrelevant issues possible.

  63. google uses bigtable (r) by Anonymous Coward · · Score: 0

    That's correct. MySQL is used internally by Google Adwords for keeping configuration parameters only. For actual products they use BigTable.

  64. Re:Reasons not to use MySQL? These are stupid reas by Anonymous Coward · · Score: 0

    Exact. IIRC, MSSQL is Sybase 4.2

    And I have seen ORACLE beat MSSQL almost every time on non trivial queries.

    In general (over simplification), my experience is:

    Sybase/MSSQL : low setup costs (parse et al.). You can send a stream with hundred of simple statements and get them executed /much/ faster than ORACLE.
    ORALCE : high setpup costs (parsing, optimizing, etc). But if you send complex statement referring to on-disk data, you'll generally get a better result than MSSQL/Sybase.

  65. MySQL Gotchas by sneakerfish · · Score: 3, Informative

    This page has a list of MySQL gotchas

    http://sql-info.de/mysql/gotchas.html

    Some of my favorite are things where MyQL accepts values it shouldn't and it doesn't throw an error. For example you can insert a 0 into a date field, 30000000000 into an in column (it will just ignore the higher order bits.

    MySQL is OK for quick and dirty, but it will always be dirty. If you want MySQL to be decent:

    1) Set it up with InnoDB and make that the default table type. MyISAM should only be used for data warehouse tpye applications where you are doing a lot of IO and its OK for the DB to be down for hours while you recover your corrupted MyISAM tables.
    2) Set the strict sql mode in the my.cnf. I don't remember exactly what the parameter name is, but you want MyQL to throw an error if you throw stupid values at it. Otherwise it will accept wacky values and you'll end up debugging it later.
    3) Set the default character set to UTF-8 if you can. This can be a bear but its worth it to be able to handle foreign characters.
    4) Avoid the fancy "features" if you can. The old features still have unresolved bugs and it isn't going to get any better with more and more storage engines going in.
    5) Monitor the performance constantly and be prepared to partition your data. Scale out isn't always as easy as it sounds.

  66. Re:MySQL the db for people who don't understand db by Heembo · · Score: 1

    Interesting post, albeit arrogant, but let me ask you, was the problem with MySQL the database software itself, the hardware used, or was the problem with how the schema was designed and/or the application code? Sure, transactional processing in MySQL is new, but do you have solid evidence to support the fact that Oracle has better/more accurate/faster transactional (commit/rollback) processing than MySQL? Also, do you have expertise with MySQL at all? Last, what is your definition of a database? I admire your arrogance, but you would care to back it up with actual helpful data in any way?

    --
    Horns are really just a broken halo.
  67. Re:lame "bias" argument by LordLucless · · Score: 1

    What a lame argument. Of course there may be some bias, but the fact is that: Oracle kicks every other RDBMS at pretty much everything: Stability, speed (optimizations up the wazoo), features, consistency.

    And price.

    --
    Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
  68. Complete crap by Seismologist · · Score: 2

    I've RTFA, and I got to say it is complete crap. OK, actually I only read the first page, and the reasons I read aren't convincing enough. Beside I dislike websites that make you go trough 8 pages at one paragraph each of content only to get lost in their completely cluttered up design and in your face advertising.

    --
    ~ In Trust, We Trust ~
  69. Re:It gets worse... by tomhudson · · Score: 3, Insightful

    My point was that its stupid to continue to be locked into one tech because you're "already using it." Or are you still browsing the internet using Chameleon on Compuserve with an old 286 and Windows 3.0?

  70. Re:MySQL the db for people who don't understand db by seaturnip · · Score: 1

    The guy is a 14-year old in underpants posting from his parent's basement. You fell for the troll.

  71. Re:It gets worse... by symbolic · · Score: 1

    I'm agreeing with you- not directly, but in pointing out that "because you are using something else" has nothing to do with MySQL in and of itself. I share your sentiment that the article is rather lacking in many respects.

  72. they forgot 1 reason by Jenovaside · · Score: 1

    If that site was running on mysql we would most likely be seeing horrible server death right now.

  73. Re:MySQL the db for people who don't understand db by Achromatic1978 · · Score: 1

    At the large Fortune 100 corporation where I work, MySQL is known rather amusingly as "the database system for people who don't understand databases"...

    Its actually been explicitly banned by our high level Technical Architecture and Strategy group, only the third piece of technology to ever achieve that dubious honor. One recent MySQL related fiasco cost us an estimated $1.24 million loss.

    Right, so in one sentence you talk about how the people you work with mock MySQL for being for the ignorant. However, until your "Technical Architecture and Strategy" group banned it, you were using it for major projects.

    So why should we believe that it wasn't your "not knowing databases" that was the fault, not MySQL?

  74. Re:MySQL the db for people who don't understand db by Heembo · · Score: 1

    I hit him with my +5 longsword, rolled a natural 20, and dropped the bastard! But still, they keep getting up!

    --
    Horns are really just a broken halo.
  75. Re:Warning: mysql_connect(): Too many connections by Urusai · · Score: 1

    Yes, a good admin denormalizes his tables and removes all referential integrity because MySQL really roars as a flat-file database.

  76. Re:MySQL the db for people who don't understand db by curious.corn · · Score: 1

    The paradox makes the anon post ever so more credible than you can imagine my friend. The purse is often in the hands of the clueless and all it takes to throw monoey in the wind is another illiterate with good social skills. Of course the ancestor poster's attitude usually helps to definitively bury the technically better option; that's why I always draw an ear to socially obnoxious nerds touting stuff: they may be onto something....

    e

    --
    Mi domando chi à il mandante di tutte le cazzate che faccio - Altan
  77. Re:It gets worse... by tomhudson · · Score: 1

    This is true. Why do they post "content-free" stuff on Fridays? (okay - they do it all the time, just MORE so on Fridays :-)

  78. I never did... by slapout · · Score: 1

    ...understand the part about having to buy a commerical license if you distributed MySQL with your program. Can anyone explain that?

    --
    Coder's Stone: The programming language quick ref for iPad
  79. well then by illuminatedwax · · Score: 2, Funny

    8 is more than 5!! Looks like I won't be using MySQL!

    --
    Did you ever notice that *nix doesn't even cover Linux?
  80. Some people write non-GPL software. by Generic+Player · · Score: 1

    Those people are unable to use the mysql client library to add mysql support to their software without buying a commercial license. If the server were GPL and the client lib were BSD/MIT (or even LGPL) then it wouldn't be a problem.

  81. TFA is idiotic - regardless of opinions on MySQL by walterbyrd · · Score: 1

    For example, the author makes statements like: "Clearly a GPL license is a plus for many, but for some environments, GPL'd software is a non-starter."

    He does absolutely nothing what-so-ever to back those statements up. Why is a GPL a "non-starter" for "some" environments? What environments?

    And the entire article is like that. A series of assertions with no reasons behind them.

    I believe good arguments could be made for, and against, MySQL. But, you won't find those arguements here. Just a series of unqualified assertions.

  82. Faster at what? by Generic+Player · · Score: 1

    The only benchmarks that show mysql beating postgresql are benchmarks of a single connection making queries in serial. It performs very well at this workload, but most real world workloads involve many connections all performing connections concurrently. Mysql sucks at this, and the more parallel queries, the worse it gets. Postgresql is way faster when handling typical loads of multiple connections making queries at the same time.

  83. may be offtopic, but... by Particle010 · · Score: 1

    While we're kind of on the topic of issues with MySQL, I have a couple questions about PostgreSQL that I'd like to ask /.
    (hell, I've got SO many questions, that I could make this into an "ask slashdot" by itself, but I'll digress)

    I'm designing a personal web business (and very new to it - this is a personal endeavor) that will require hosting small files, perhaps no more than 5 megs each, but the overall byte size of the database could reach into the terrabytes potentially. I have chosen PostgreSQL over MySQL due to user opinion for it's robust nature, BSD license and solid stability. I know of the max file size of NTFS as 16 terrabytes, I believe, so is PostgreSQL capable of storing and managing terrabyte size databases effectively? Would breaking down the data into multiple databases consisting of minimal tables be better or would handling all of the data in 1 database with lots tables be best? And how many tables can a single database handle? thousands? millions?

    I have books on these databases, however, none of which answer these questions. They probably assume Joe Average is making a small family site to host pictures and such.... or maybe a small corner store going e-commerce for the first time. The BIG answers are hard to come by since most forum traffic consists of "bits" of information that would require piecing together hundres of forum threads and web site data to get 1 complete answer. I hate wild goose chases. The open source community is great for information, but piecing it all together can be a real pain in the ass.

    And on a really tangential side note: I'm considering IX web hosting's top plan which apparently has no size limits for data storage. Is this web host capable of handling terrabytes of someone's web business?

    --
    "Not the Earth!!! That's where I keep all my stuff!!!" - The Tick
    1. Re:may be offtopic, but... by fimbulvetr · · Score: 1

      Heh, that's hilarious.

      You've chosen psql over mysql based on someone else's opinion of it being "more robust", "it's license", and it's "solid stability", yet you're going to be running it on NTFS?

      Have you no sense, man?! Your Windows install/setup will die long, long, long before psql or mysql will.

    2. Re:may be offtopic, but... by Anonymous Coward · · Score: 0

      "I'm designing a personal web business (and very new to it - this is a personal endeavor) that will require hosting small files, perhaps no more than 5 megs each, but the overall byte size of the database could reach into the terrabytes potentially. I have chosen PostgreSQL over MySQL due to user opinion for it's robust nature, BSD license and solid stability. I know of the max file size of NTFS as 16 terrabytes, I believe, so is PostgreSQL capable of storing and managing terrabyte size databases effectively? "

      Why are you running on Windows? With open source software, its almost always better to pick the target platform. PostgreSQL was originally written for UNIX. A UNIX like operating system is preferable. (Linux, BSD)

      "Would breaking down the data into multiple databases consisting of minimal tables be better or would handling all of the data in 1 database with lots tables be best? And how many tables can a single database handle? thousands? millions?"

      Wow. Perhaps you should get a book on databases.

      "And on a really tangential side note: I'm considering IX web hosting's top plan which apparently has no size limits for data storage. Is this web host capable of handling terrabytes of someone's web business?"

      Most hosting plans are not designed for these requirements. If you really will store this amount of data, you will need a dedicated server. However, you probably think you need this but really do not. Its good to plan ahead, but a new business typically won't store massive amounts of data overnight. Also, using binary blobs to store files might not be the best approach if you want to scale this high. Just use the database to store references to the files location and put the files on a separate location on a physical filesystem. Regardless of what you do, contact the hosting company and tell them of your requirements before signing up.

  84. "MySQL is FASTER" by Reality+Master+201 · · Score: 1

    That statement is proof positive that you have no fucking idea what constitutes a good quality RDBMs or when you ought to use one.

  85. What a horrible article by Billly+Gates · · Score: 1

    I was hoping for concrete evidence for and agaisnt mysql, but instead read about someone raving agaisnt the GPL and slamming mysql, then supporting the GPL and slamming mysql because its not gpl?? Then I read about how some dbas' are idiots because they buy more than 1 database license when one already exists and then somehow turns this agaisnt mysql. Last he slams mysql because its not 30 years old like oracle and just 15 years old?? What does that have to do with reliability?

    Whatever .... I did not bother to read more.

    At least mention the pros and cons of price, features, flexibilities, and needs when writing an evaluation. Worse is the author who bashed mysql did not even offer an alternative but Oracle a few times just because you may have a license already.

    BTW I think mysql is weak compared to a real database with acid support and better clustering and transact sql. Those could be arguments for postgresql or ms-sql server which are better than mysql for certain situations just like Oracle is better for very large scale operations.

  86. Re:Reasons not to use MySQL? These are stupid reas by McGiraf · · Score: 1

    LOL !

  87. Transparancy by sm4096 · · Score: 1

    Please show me examples of too much Transparency not being in public interest. I absolutely love the concept. I can't get enough of it in govt, business and programming code. It could help impact corporate corruption government corruption, and some FUD attacks. Kudos.

    1. Re:Transparancy by RingDev · · Score: 1

      Enron was a publicly traded company. /shrug

      -Rick

      --
      "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
    2. Re:Transparancy by Anonymous Coward · · Score: 0

      Parent mod up in error.
      First to make this argument I will have to establish premises we can mutually agree to
      premise 1
      Public Corporation
      pro-
      allows capital to come together that may not have been otherwise possible to accomplish what might otherwise not be possible...
      con-
      concentration of power and all that goes with it ...etc

      premise 2
      Now I will assume we either want the benefit of corporations or we wish to do something that reduces the downside of them. Let us consider eliminating them entirely outside of the scope of this argument.

      Argument 1 Current solutions are ineffective or not fully effective as evidence by continuing fraud. There is no harm considering refinements of current policies. Disproportionate punishment is not effective. Multi-billion dollar fraud jail time compared to bank robbery. Punishment may not be effective in general to certain people past a certain point, or to people who do not care etc. Even a proportional punishment is not meaningful past a certain point. 10000 years in jail or 100, whats the big deal.

      Getting to the point I believe more transparency , forced disclosure of more powerful searches combined with a financial incentive for uncovering fraud would serve public interest and perhaps complement any consequences incurred on perpetrators. Basically if external people could google grep, parse, search company books with incentive derived from finding fraud this would serve as checks and balances to the power and capital focused by corporations. I further argue such that such measures would not hinder legitimate accomplishments derived from the focus of capital as we do not restrict what can be done with the resources but just invite scrutiny. More transparency allows light on the cockroaches. In any people that believe in checks and balances on power I feel agreeing will come naturally. Anyhow this is a powerful concept that I feel is a noble one. I think given the nearing elections... Hmm, it gives me an idea that perhaps one of the candidates would like to champion this.

  88. Re:Reasons not to use MySQL? These are stupid reas by hobo+sapiens · · Score: 4, Insightful

    Not sure what you mean by "faster". In my post, when I say fast, I mean the humble act of selecting data, which is 90% of the queries in I'd bet most traditional web applications. I care less about insert, updates, and deletes because those just don't happen as much.

    Oracle run by a good DBA is fast fast fast. I don't have benchmarks for you. But I have personally migrated an application from MSSQL 2000 to Oracle 9i. I have more experience with MSSQL than I do Oracle (and so you could rightly infer that at first, my coding practice was optimized toward MSSQL which is in many cases the opposite of how you code for Oracle), and yet my application runs much, much faster on Oracle. I chalk it up, in part, to the efficiency of the indexing. The b-tree indexes in Oracle are just awesome. And now that I actually understand how to really tune a query in Oracle like I do in MSSQL, I have to say that Oracle provides better tools to enable you to tune. The explain plan alone, when you really understand it, is hands down better than, say set statistics io on and set statistics time on in MSSQL. And that's not even getting into TKPROF.

    Maybe your real world experience says the opposite of what I just said, but in the corporate environment (like at work) I wouldn't even think of using anything other than Oracle, not out of prejudice, but based on years of experience. I'd like to try MSSQL 2005, though. Always willing to give them another shot.

    But I have also used Oracle DBs admined at let's just say, a less-than-competent level, and it's quite horrid. Oracle has to be done well, and paying a real DBA is costly. Enter MySQL.

    --
    blah blah blah
  89. From a (too-quick) 30-second reading of both... by Kalzus · · Score: 1

    It looks like the article "5 reasons for" is an enumeration of technical reasons it could be good for an organization to use MySQL, and the article "8 reasons against" is an enumeration of reasons why a CTO/CIO may be unwilling to be responsible for what might happen if MySQL were deployed.

    --
    "The Devil does not know a lot because He's the Devil, He knows a lot because he's old." -- unknown
  90. Re:lame "bias" argument by Anonymous Coward · · Score: 0

    And security. After all, they did call it "unbreakable", therefore it must be true.

  91. Re:MySQL the db for people who don't understand db by einhverfr · · Score: 3, Informative

    I will take a crack at this.

    With a traditional RDBMS, you define your data essentially using a pseudo-mathematic model, assign data constraints and triggers to ensure that the model is not violated, and add views to provide handy ways or putting the data together. You may optionally add stored procedures as a functional interface to that model.

    Until 5.0, MySQL didn't even try to be this sort of database. Even in 5.0, you only get real data constraints, triggers, etc. on some types of tables, and strict mode (which does actual data type checking) can be turned off by the application. MySQL still does not compare well to traditional RDBMS's in their home turf (though PostgreSQL, Ingres II, and to a lesser extent Firebird do compare reasonably well-- Firebird to a lesser extent just becuase of some interesting cases involving NULL's).

    In fact, MySQL is almost, though not entirely unlike Codd's idea of an RDBMS. MySQL is not something to consider for your RDBMS. Period. End of story. It is not worth it.

    However, if what you want is a simple data storage engine for your one app with an SQL interface and many of the features from real RDBMS's, MySQL is not bad. It is a remarkably flexible software development tool with many very useful. It just is not a substitute for a real RDBMS (where, for example, the server must authoritatively and robustly provide data sanity checks).

    --

    LedgerSMB: Open source Accounting/ERP
  92. Why GPL of clients IS an issue! by Anonymous Coward · · Score: 0

    For correctness, the GPL also covers the other clients (Java, .Net).
    Add to this, that MySQL AB is absolutely horrible at explaining their position on GPL coverage (read the Licensing forum on mysql.com). Continue adding, that the FSF prefers to interpret "distribution" to also cover making publicly available a Web site driven by MySQL (FSF GPL FAQ). Finally, the few explicit statements from MySQL AB personnel (again, from the Licensing forum), stating if you use MySQL with non-open source software, you should use a commercial license, period.

    Based on this, I would say that the GPL'ed MySQL is a no-go in a corporate environment, period.

  93. Re:MySQL the db for people who don't understand db by Heembo · · Score: 4, Insightful

    I only use the most recent version of MySQL, and I have the exact opposite perspective. MySQL does what a database is suppose to do really well - simple relational queries onto data. MySQL's transactional processing; the ability to set a savepoint and then commit or rollback, seems flawless to me.

    Oracle on the other case, seems to be doing exactly the opposite of what a database is supposed to do - it's encouraging you to push more and more of the application layer into the database (first plsql, and now Java at the database layer?).

    I just want to create tables, select, insert or update data. Not much else. That's what Codd truly intended. Codd would roll over in his grave if he saw the bloated mess that Oracle is today. And you can design a horrible denormalized schema in Oracle just as much as MySQL - neither force any form of normalization at the RBDMS level. (Some applications merit denormalization)

    Not to even mention the absolute shameful way Oracle considers, manages and patches security issues.

    MySQL is a simple, free relational cruncher. I can't believe a true finance architect considers Oracle more robust that MySQL, especially when its comes to security.

    --
    Horns are really just a broken halo.
  94. Re:Uh, oh. The pro mysql guy can't count. by yoyhed · · Score: 1

    Don't forget P-Mate!

    --
    WHO NEEDS SHIFT WHEN YOU HAVE CAPSLOCK/ DAMN1
  95. Re:MySQL the db for people who don't understand db by KDR_11k · · Score: 1

    A database that is shared between multiple applications must maintain consistency by itself instead of farming it out to the applications since otherwise the applications can disagree on what constitutes a valid state. From the comments I've read about MySQL it seems to be sufficient for smaller operations where everything is under your control but once you get bigger and have many different entities accessing your database you want to enforce consistency and access privileges centrally which also makes sure that any changes to those can be done centrally instead of altering every tool that interfaces with the DB and that improper (potentially malicious) commands to the database can be prevented from doing any harm. Think e.g. a bank database, it gets accessed from every company that runs ATMs and has to provide them with the information that an ATM needs but it also has to make sure those other companies don't access data they have no business reading or write data into the DB that creates an inconsistency (e.g. withdrawing money from an account with a remaining credit limit lower than the amount withdrawn, if there is no DB level check the other company could subtract more money from an account than that account is allowed to lose).

    --
    Justice is the sheep getting arrested while an impartial judge declares the vote void.
  96. Databases suck. Big time. ... All of them. by Qbertino · · Score: 0, Troll

    It doesn't surprise me that both articles don't really contain much usefull information. It's like two people debating wether FreeDOS or MS DOS is better. No actual real-life or even academic issue.

    [rant]
    The more and more I do professional projects that go beyond a 'single freelancer' scope the more and more RDBMSes bug the piss out of me.
    Databases suck. What we call databases today is nohing much more of a historically grown apocalyptic chaos. With one of the oldest and crappiest programming languages ever as a cornerstone of its technology. A weedy mumbojumbo of wanna-be virtual machines, wanna-be server daemons, makeshift security layers, obstrusive user management and pseudo operating systems and a bazillion proprietary variants of said programming language that make a Perl debugging session look like a walk in the park in comparsion. With features bolted on left right and center. This basically is the case with any current DB in widespread use, be it MySQL, Oracle or anything inbetween.
    And if you look at the core of it Database technology and how long it has been that way there isn't much hope that DB's will go anywhere anytime soon. Mostly because people are to thick to f*cking drop the notion that SQL has some sort of value in itself.

    It litterally scares me to see many experienced developers who are so brainwashed by unquestioned traditions that they truely believe they need something different than the programming language they're using for their application to handle the persistance layer. A Database PL and 30+ dialects of it from back in the days when we flew to the moon using a slide-ruler as primary means of calculation. A PL that would have any CompSci student score a clean 'F' in compiler and parser building would he deliver something like it as project today. A PL so broken the only other I know that compares to it is Lingo. We waste tons of money and manpower educating DBAs with technology and concepts that are a pain in the ass and not even very tranferable. And the technology doesn't even do it's job very well! Relational Trails, true hassle free de-normalisation, true hassle-free scalabilty - no go. Nowhere. And no, having to need three 200$/hour Oracle DBAs who spent years stuffing their brains with proprietary sh*t to move from one server to 10 is _not_ what I call 'scales well' nowadays. So Postgres (and maybe some others) have entity inheritance. Halleluja. Big fat hairy deal. And the new DB2 can do nested sets with XML (serialized data). I am over-f*cking-welmed. Hello? What time are we living in?

    I understand that something like SAP has a hermetic market and they are the proprietary king of the ERP hill with a licence to print money. Their army of suits is the right thing for dealing with CEOs and special SAP devs have to deal with ABAP as a tradeoff. I can get that, it's a marketing thing, not a software thing. They get paid enough anyway.

    I also understand that we are still living in the early days of comodity computing and that universal unicode and some other stuff I as a webdeveloper run into every day - and bugs me just as much - still need another few decades to even themselves out. After all I can't force all my users to use Firefox 1.5+ and pure unicode on their clients.

    But it's nearly *only* developers that deal with RDBMSes. Our code writes the data and gets the data. But why so many devs who all are in total control of the backend and what it uses put up with this pile of doo-doo we call 'database technology' nowadays is totally beyond me.
    [/rant]

    My 2 cents.
    (SQL-fanboys please cue remarks about how I don't know what I'm talking about below)

    --
    We suffer more in our imagination than in reality. - Seneca
    1. Re:Databases suck. Big time. ... All of them. by Allador · · Score: 1

      What is it that you are proposing as an alternative? I hear alot of complaining, but you dont see to be offering anything else that might work better.

      I believe the reason that RDBMS's are the way they are (at the core, not the peripheral feature sets) is that the problem they are trying to solve is a fundamentally 'hard' one (hard in the CS sense).

      I believe if you tried to solve the data persistence problem yourself (assuming a reasonable sized data set, figure items in the millions to billions range), you would end up building the core engine of a relational (or maybe hierarchical) database all over again, but it would be tuned to the particular character of your first app's dataset.

      Then as you re-used your code and tried to re-use the storage layer, you'd end up just generalizing your code. Do this for about 10 years of evolution, and whammo, you've just re-invented Oracle DB.

      Also note that you can get by just fine for data storage using just standardized SQL (maybe a few dialectical issues like semi-colons, statement delimeters, etc). So from the app's point of view you're just talking to a generic database. Hence the upsurge in use of DAL's and ORM's in the industry the last couple years.

      Then do your optimization at the DB layer, where it is invisible and abstracted away from your app layer.

      But ... back to the original point. Storing large amounts of heterogenous data in a form that can be quickly (ie, nearly instantly) read back and added to (in a performant way) is hard. It's easy for small data sets, but gets very hard to solve in a way that scales linearly.

      Now I'll grant you that all the major DB vendors do add alot of cruft onto them, and seem to be moving towards a full blown mini-OS and platform. But thats really tangential to their primary use, which is just storing and retrieving structure data while maintaining data integrity. And you can do that with anything, including Oracle, without ever touching PL/SQL or any other oracle-specific bloat features.

    2. Re:Databases suck. Big time. ... All of them. by Qbertino · · Score: 1

      What is it that you are proposing as an alternative? I hear alot of complaining, but you dont see to be offering anything else that might work better.

      I believe the reason that RDBMS's are the way they are (at the core, not the peripheral feature sets) is that the problem they are trying to solve is a fundamentally 'hard' one (hard in the CS sense).


      I totally agree. (said something simular a while ago) The link to the real world and it's limitations has to be the way it is in most places. I even don't see a problem in having a persistance layer with the bazillion means of configuration such as MySQL. It offers the needed flexibility and learning about the details here isn't pointless.

      However I do expect an alternative to SQL and it's countless dialects. As I think I brought across quite clearly in the above post. The alternative being, of course, no second language at all. Or should I say 'no extra language per DB in use'. All open source languages I know of offer wonderfull devices for filtering and moving data from A to B in every which way one could imagine. Each and every SQL variant is at least 5 steps back from all of these.

      Let's look at PHP for an example:
      #Possible PHP way (current):
      array_search($user.names, "Miller");

      #Possible PHP way (fictional persistance layer integration):
      $user.names['miller'];

      #SQL way for PHP:
      "SELECT * FROM user WHERE name=".$myName.";";

      Now it's given that PHP isn't the most elegant of OSS PLs and that it's well within it's achestors tradition (Perl) in being a tad quirky. But it hardly get's any more complicated and weedy in PHP, no matter how complex your requests are. But try linking 3 entities in SQL and comprehending the error messages while trying to do that in any Database and you know what I'm talking about. Perl, Python, Ruby, PHP, whatever only would need a handfull of additions to deal with any solvable problem that occurs when connecting to the persistance layer. And no, what goes through as 'Database Abstraction Layers' nowadays is not what I'm talking about. Just ponder the concept of DBALs for a minute and it will strike you how backwards it is. The best we can come up with is automatic SQL generation and for my taste that is just to much overhead for a technology that doesn't deserve to (still) be there in the first place. Whenever I get back to that I feel like I'm back in 86 at my Sharp computer and hacking it with Basic Peek'n'Poke and Opcode. At least that made sense in making my code faster and more flexible.

      What I'm basically saying is this: The devices and concepts SQL offers for handling data are so out of line of everything else we deal with it isn't funny anymore. I have no problem with RDBMses and I have great respect for people taking on the task of dealing with our HDDs and taking the load of Filesystem developers for another few years. But why this all has to happen seperate of all the other stuff that has moved on so fast in the last 10 years I really don't understand.

      Let me emphasise yet a little more by giving a proof positive for things that can't be stopped from sucking: XML. XML is relatively new. But XML sucks. But XML sucks because it serialises n-Dimensional structures. It squishes them into 1-dimensional streams of data. That's a classic hard problem in CS - and it will allways suck. Until the end of the universe it will. Considering that, XML is a perfect solution (RelaxNG fans, please don't get nittpicky) as it is our way on agreeing how this problem can be expected to suck. Thus I can focus on getting my data in line when dealing with XML, but needn't be to annoyed about the standard.

      SQL on the other hand sucks where it musn't. It's old and the people back then didn't know better. In fact, they probably did, but they wrote SQL for to be typed by humans live into a terminal connection. It must have been magic back then for that kind of task. But explain to a CS guy from '78 what we are doing today with SQL (using it for fully automated data linkage and juggling) and he'll shake his head in disbelief.

      My 2 cents.
      Educated opinions welcome, please join in.

      --
      We suffer more in our imagination than in reality. - Seneca
    3. Re:Databases suck. Big time. ... All of them. by Allador · · Score: 1

      So if I'm understanding correctly ... you want structured and fast (ie, indexed) data storage, without having to deal with the separate domain (and language) of set theory, which is what SQL allows you to operate on.

      The problem I see is that if you want structured data storage without SQL (and therefore, without set theory), then you're going to have to give up something. You either give up the incredible value of a relational data store (ie, normalized data, referential integrity, constraints, joins, indexes, etc) and basically use a big cache of dictionaries/hash-maps, or you use a DAL/ORM.

      I guess what I'm saying is that the best way we (we as in humans) know how to store data in a robust fashion, that maintains data integrity, minimizes redundancy, and maximizes searchability, is the good ol' Relational Database. Done properly (ie, avoiding just storing everything in one big wide table with many sparse columns), you end up with many tables. In fact, you basically end up with something that minimally represents an ERD, with extra rounds of normalization done on it to reduce data redundancy.

      But unfortunately, now you're dealing with a storage structure that is heavily optimized for data integrity (and low data redundancy), and high speed of access (through indexing and partitioning optimizations within the DB). This optimization creates a data structure that is non-trivial to retrieve information out of. In other words, the data is so highly normalized (ie, broken into many small but full tables) that it requires complex set algebra to get that data back out.

      Now you could ditch relational data structures entirely, and use something simpler. That will give you simple key-based access to long rows of data from the store.

      And that will seem to work great in the simple case, with a relatively small amount of data. But as your data size and complexity grows, you'll start to see problems. You'll have to put lots of data-integrity code in your database, and if you make a mistake, you'll have bad data in your system (orphaned records with no parent, null values where there shouldnt be, etc).

      So the problem with that approach is that it doesnt scale. It works decently in small apps where your table structure is nearly exactly 1:1 with your object model (ie, one table per 'entity' in your object model). But you run into problems when your data structure needs grow more complex. These usually revolve around data integrity issues (ie, data that is 'bad' is allowed into the system).

      I've seen this happen many times over the years where, for example, someone doesnt believe in using Referential Integrity in the database, and they think it should all be done in the applciation layer. And that works great, until people do direct maintenance loads or modifications against the DB directly, without going through the application.

      There's also big performance benefits to a normalized data structure. Because the structure of the data adheres to certain theoretical concepts, the query optimizer has great power to make decisions about how to efficiently access this data. If you move to a big hash-table type structure, you lose this. Performance would be fine at small scale, but access times to data rows would see linear (or worse) scalability as data size expanded. Contrast that with a relational data store, whose access times are very insensitive to data size (ie, a nearly flat response curve compared to data-size).

      So I know I'm getting a little strayed from the original concern, but there is a connection.

      Reliable data storage requires some sort of specialized storage structure (like a normalized data structure).

      This requires a relational database engine (or something like it) to manage the data, and keep it in line.

      Accessing data in this format requires a specialized language, to deal with the highly specialized nature of the data storage domain.

      So in other words, if you give up SQL, then you must necessarily g

  97. Reason 9 by bl8n8r · · Score: 1

    SCO has their mitts in it.

    --
    boycott slashdot February 10th - 17th check out: altSlashdot.org
  98. Certifiable? by leonbrooks · · Score: 1

    WRT the Certification Training Program, maybe MySQL simply doesn't have the tonnes of crap piled onto it that Oracle or MS-SQL server typically do? In other words, maybe you only program Oracle or MS-SQL at a technical enough level if you're "certifiable?" (-:

    Disclaimer: I spend a lot more time on PostgreSQL than MySQL, but know a few of MySQL's developers. It would take a specific and feindishly complex access situation for me to prefer (e.g.) MS-SQL to MySQL.

    For the vast majority of single-use situations I prefer PostgreSQL but basically would be very happy using MySQL instead. PostgreSQL has a few more useful detail features but in most cases they don't make a substantial difference, and MySQL does things like going faster and using fewer resources, general properties which make it attractive beyond the mainstream things which it does exceptionally well.

    Either of them are streets ahead of MS-SQL in terms of clear simplicity, and if you don't need Oracle's labrynthine complexity (and such cases generally speak more to poor project design than to any genuine need for complexity), then don't suffer from it. Sticking to MySQL or PostgreSQL also means that you don't have to work anywhere near as hard to port your app to a different database when that time comes. Oh, yes, and installing either is just an apt-get or urpmi away, rather than an epochal session involving either leagues of cryptic commands or massive insecurities or both. And you don't need to bow and scrape before intricate and/or overkill licence terms.

    --
    Got time? Spend some of it coding or testing
  99. Re:Reasons not to use MySQL? These are stupid reas by Organic+Brain+Damage · · Score: 1

    Oracle's vaunted B-Tree indexes? How are Oracle's indexes any better than MSSQLs? As I understand it, most RDBMS indexing is based on some kind of tree structure. I hear the WatCOM SQL team finds Red-Green trees particularly handy in Canada.

    As for some other erudite fool's suggestion that DB2 is a terrific tool for scanning a billion rows...when I find myself faced with the task of scanning a billion rows, I have to ask myself, how did I get here?

    A tree (index) will get me through a billion rows with 32, maybe 33 comparisons.

    The real deal on RDBMs...there are 3 serious products. Oracle, Microsoft and IBM. A programmer/DBA will be able to do pretty much anything with any of these three. Differences in performance will be largely attributed to the programmer/DBA's personal preferences. A programmer who loves Oracle and hates DB2 will, when confronted with a requirement to make a DB2 database, make a crappy one.

    So, when you talk about how much you gained going from MSSQL to Oracle, I'm pretty sure most of that's because of your preference for Oracle, not the actual differences between MSSQL and Oracle 9i.

  100. Seriously? by jgoemat · · Score: 1

    First let me say I have very little experience with MySQL. I have basically tried it out a couple of times, but we use MS SQL Server at work so I don't use it much. I am not an MySQL fanboy by any means, but I find the slant of the article disturbing.

    His first two reasons:
    1. MySQL Uses the GPL
    2. MySQL Doesn't Use the GPL
    It doesn't take Sherlock Holmes to see a logical problem here. These two could actually be seen as a reason to use MySQL. You can choose the GPL if you wish to use MySQL for free and plan to use the GPL yourself, or you can purchase a commercial license if you want to keep your code to yourself. Choice seems like a good thing to me. Each one cancels out the negatives of the other. If you choose the other RDBMSs mentioned (except POSTGRESQL), you are stuck with all the minuses of option #2 and more (since you still get the MySQL source with option #2) without the choice to go for option #1.
    • Integration With an Existing Environment
    Basically he says that if you're already using another RDBMS and have enough licenses, why not use it? This could also be seen as a reason to use MySQL if you already use it for other projects.
    • Feature Set Maturity
    It looks like he is saying that MySQL has all the features you need as of version 5.0, but it is only one year old so how can you trust that they work well since they weren't in the previous version? Seems like a lame stab at MySQL whereas a real analysis would use the features and judge them on their merits. While the new features have only been in production for a year, they were in beta long before that. It's confusing because he mixes in faults of previous versions in his discussion, very strange indeed.
    • Corporate Considerations
    Wow, this is incredible to me. He actually says that because Microsoft and Oracle are publicly traded companies that they are more reliable. I would argue that since you get the source code to the RDBMS that MySQL has the upper hand here. Other solutions stop supporting versions after just a few years and you have to pay new license fees as well as go through the pains of an upgrade (admittedly easy I know from SQL Server 2000 to SQL Server 2005 at least). With MySQL you have the source code and can fix any problems yourself and use it as long as you want, for free if you use the GPL.

    He makes some claim that if a crash occurs during certain operations that the database can be left in an inconsistent state. I can't vouch for that one way or another but that would be a reason not to use MySQL.

  101. Re:MySQL the db for people who don't understand db by rdebath · · Score: 1

    I don't agree with your premise, but the solution is a good one.

    All a database requires is ACID^2 (Add,Change,Inquire,Delete,Atomicity,Consistency,I solation,Durability) the bugbear here is the 'Consistency' tag. Originally and properly this only really refers to referential integrity, but it has been gradually extended to include more and more of the user application. First off came column types and 'NOT NULL' and it's grown from there into the horrific mess that is MS T-SQL.

    What you are doing is putting the application server into the database, code that often goes into libraries or special servers (and sometimes nowadays in 'web services'). Stored procedures and triggers are reasonable solution to the problem BUT do not define what an RDBMS is.

    An RDBMS is something that solves the difficult ACID^2 problem and so provides a solid base for the application and application services. Once you have that base the application level consistancy (eg "the G/L must balance") becomes a lot easier.

    So back to the top, MySQL isn't a true database when it doesn't have transactions, but as long as you choose a backend with transactions it most definitly is an RDBMS, but perhaps not an application server.

  102. Re:Reasons not to use MySQL? These are stupid reas by BerntB · · Score: 1

    Oracle's vaunted B-Tree indexes? [...] A tree (index) will get me through a billion rows with 32, maybe 33 comparisons.

    See e.g. this or this.

    (Hint: B doesn't stand for binary.)

    --
    Karma: Excellent (My Karma? I wish...:-( )
  103. Only 2 DB's Please by blooba · · Score: 1
    Every ops group should support 2 db's: a free one and a non-free one. You use the free one where you can, where it makes sense. You use the non-free one everywhere else.

    And please do not ask your ops group to support more than 2 db's.

    It is strategically imperative to add a free db to the mix if only to give you some leverage over the non-free vendors. Otherwise Oracle will bleed you. So OK they're going to bleed you anyway but maybe not so badly.

  104. Re:Reasons not to use MySQL? These are stupid reas by TheLink · · Score: 1

    The list is still crap. What big picture?

    Stuff fit for a real online CIO mag should be:
    1) License may be incompatible - list the various licensing issues with MySQL
    2) Strategic: Oracle owns Innodb and Sleepycat - technologies that "serious" MySQL sites depend on.
    3) Strategic: management of MySQL Inc seemed to not have anticipated 2).
    4) The MySQL Inc people (developers etc) were not concerned about data integrity for a long time and came up with _excuses_ rather than saying "OK we screwed up, we'll fix it". (this shows you what sort of people are behind the long term product direction).
    5) Better options out there - Oracle, Postgresql, DB2, MSSQL etc: see our article "Which databases for your company?" for details (and read more ads there ;) ).
    6) Lots of technical problems with it (see our article: "MySQL the gory details" which explores these in depth).

    If you are a real CxO your internal additional negative reason list could go something like this:
    7) Your Legal Dept recommends against it for legal reasons.
    8) Your top techs recommend against it giving technical (and sometimes other) reasons.
    9) Your company is already using Oracle/MSSQL/Postgresql/etc and the IT/IS dept has other more important things to do for you and the company at the moment.
    10) You checked with a few of your trusted competent contacts and they recommend against it. If you are a real CIO/CEO you should know a few people who know stuff, otherwise you're just one of the fakers.

    --
  105. Re:MySQL the db for people who don't understand db by Anonymous Coward · · Score: 0

    I was responsible for ensuring it got banned, after it became clear that even people with quite senior roles in my organization didn't understand what was meant by the words "scalable", "high availiability" and "transaction".

    Rather than argue the toss on a case-by-case basis, I simply pointed out to our CTO that we have 1000s of proven Sybase, SQL Server, Oracle, Ingres and Teradata deployments, none of of which had ever been the root cause of a $1.24 million loss, and it was banned the next day.

    When you have a large (0.5TB) database that requires quite literally 100% availability, globally, 24x7, you cannot afford to be playing with broken toy database systems.

    I'll put it in language you fresh-out-of-college no-experience so-called computer "scientists" will understand:

    MySQL FAILS IT.

  106. Re:MySQL the db for people who don't understand db by Anonymous Coward · · Score: 0

    What? 500Gb is a small database. You gotta be kidding me! That's your large precious database? LOL

    Seriously. If you're going to troll, at least do a decent job.

    If any proof was needed you are, indeed, a 14 year-old trolling from mommy's basement, here it is.

  107. Master/Slave Convolution by Anonymous Coward · · Score: 0

    My biggest gripe with MySQL is its convoluted means of dealing with Master/Slave and failover. There is a lot of room for error and painstaking backlogging to repair such.

    I have to wonder who designed this and what medicinal drug they were overdosing on at the time.

    If my Master fails, Slave takes over, I shouldn't have to spend a ton of time tweaking to get the failover to return back and replicate.

    That alone would be enough for me to go commercial, regardless of the cost.

    Other than that, the throughput we've had has been fine - though our application is not high I/O.

  108. why not enable integrity by default? by Christopher+B.+Brown · · Score: 1
    There's an excellent reason not to enable these sorts of integrity constraints, by default: Because it would, by default, break a whole lot of the traditional web applications that expect version 3 style behaviour.

    If they had version 6 "break with historical stupidity," that would forcibly break compatibility with legacy applications, and it would pretty much eliminate any argument for remaining with MySQL.

    After all, if the migration to version 6 requires rewriting your applications, isn't that a "breakage" significant enough to cause decision makers to say: "Hmm. They're requiring me to rewrite my applications. At this point, there isn't any reason not to open my choices wider, and consider other DBMSes, is there?"

    That's one of the reasons, I expect, that Windows Vista didn't have so many Longhorn features in it; if it's fundamentally a totally new (and significantly incompatible) platform requiring substantial redesign of applications, people will think more than twice about adopting it. The same sorts of things hold true.

    --
    If you're not part of the solution, you're part of the precipitate.
  109. Gasperson's data source by Christopher+B.+Brown · · Score: 1
    It is worth observing that Gasperson recently solicited "Top 3" reasons to pick MySQL(tm) in a LinkedIn Discussion recently.

    A goodly number of pro and con arguments were presented there; Tina evidently sought to glean the ones that she could keep as unambiguous ones. She failed, on the "price" one, in that most of the other OSS database systems don't have a MySQL AB ready to collect licensing fees from you...

    --
    If you're not part of the solution, you're part of the precipitate.
  110. Re:MySQL the db for people who don't understand db by turbidostato · · Score: 1

    "was the problem with MySQL the database software itself, the hardware used, or was the problem with how the schema was designed and/or the application code?"

    Does it really matter? Some senior architects pointed out to the MySQL guy, since they fired. Either those seniors had no clue (in this case that Fortune 100 have more serious problems), or it was the MySQL guy in fact the one to blame (well, on a corporate environment things are never so black-and-white, but it's good enough for a first approach).

    Now, I think you have your points but still, don't understand the issue. Let's see this way. You are on the HR department trying to fill a position; you have two hundred resumes and you know from previous experiencies that around ten out of those two hundred will quite fit the post. You start doing a first cleaning: you go for those with proper certifications, past experiencie and the like; in half an hour you have detected a very suitable candidate. Maybe one of those without certifications is very good for the post; maybe one of those without previous experience is a genious. Are you going to loose another four or five hour to know? Surely not: in half an hour you have a perfectly suitable candidate, so to the hell with the other 199 resumes. Will you loose a better candidate from time to time? Probably yes. Will you get the best possible candidate? Probably not, but you *always* will get a fairly good candidate on record time: that's efficency and it's a very good quality on a corporate environment.

    Again with MySQL: it's *very* adecuate the saying from the previous poster about it being banned on his corporation on the basis that it is the database of those that don't have a clue. Is it true? Statistically yes. Maybe because it's "too easy to start with", maybe because it made up a strong niche coupled to PHP (which is quite the same: the language for those that don't have a clue). Is it just? probably not. Can there exist the case where a good DBA would make up a good data backend out of it? Probably yes but, efficiency-wise, who cares? Am I going to risk millions on a database I know the one that recommends it doesn't have a clue more times than not when I have a way to efficiently discriminate good DBAs from regular (or bad) ones when using a different tool (say, Oracle) and I do have demonstrable experience on such an environment? No way, sir, no way.

    "but you would care to back it up with actual helpful data in any way?"

    The point is that he doesn't need to back it up nothing! He is a senior architect who can point to a proven track record of success on -say, Oracle or maybe Postgres or Firebird. He has no need at all to change successfull procedures or tools. It's *you*, the newby, the one that must prove beyond doubt the virtues of the new tool that wants a piece of the cake, not him.

  111. Re:Reasons not to use MySQL? These are stupid reas by Christopher+B.+Brown · · Score: 1
    I don't think you understand B-trees if you are assuming log base 2 numbers of comparisons.

    In most systems (probably even including MySQL), a B-tree is an index structure consisting of sets of pages. Each page might be (say) 8K long, so that if the index value were (say) 16 bytes long, you could fit somewhere on the order of 512 index entries on each page.

    In that case, the number of index accesses required to access "billions" of rows would be log (base 512) (10^9), so you'd expect to hit the desired tuple in 3-4 page accesses.

    (Obviously, if the number of tuples per page is lower or higher, the base for the logarithm changes...)

    --
    If you're not part of the solution, you're part of the precipitate.
  112. Re:Reasons not to use MySQL? These are stupid reas by jadavis · · Score: 1

    The real deal on RDBMs...there are 3 serious products. Oracle, Microsoft and IBM.

    You haven't said much to support that argument. PostgreSQL is quite a serious RDBMS, and I see no reason why it isn't out ahead of MS SQL Server.

    --
    Social scientists are inspired by theories; scientists are humbled by facts.
  113. Re:My own reason not to use MySQL by neutrino38 · · Score: 1

    I use MySQL 5.1.x for my business and when I started I found that this was a well supported engine and went ahead. Now that we've got more experience on it and scratched below the surface we will consider the switch (propably to Postgress). Here are my reasons:

    - support for stored procedure is still in infancy. Expecially error handling. There is no way to raise a custom error and the compiler gives imprecises error messages. There is not trace mecanism to troubleshoot them.

    - the availability of multiple storages back-end may appear as a feature but I believe this should be handled internally. Especially some critical features such as referential constraints are implemented on SOME back ends. This complicates the DBA job tremendously.

    - the first back end to support ref. constraint is InnoDB. It has been acquired by Oracle. It is unclear what will happend. Can a GPL licence be withdrawn ?

    - when writting a trigger, it is impossible to cancel a transaction. This remove almost all interest in triggers.

    - the commercial licencing model requires you to pay every year. Although the price are low compared to other commercial DB, this is a major hindrance when someone want to embbed this engine into the produc.

    Bascally, for non-critical internal application, MySQL is perfect. For advanced critival applications or sellable products, I have trouble to go that way.

  114. Re:lame "bias" argument by kpharmer · · Score: 1

    >> Last time I checked, DB2 was more scalable than Oracle

    > That depends entirely on the platforms you happen to run them. DB2 on NT (what used to be called "UDB") is a joke; DB2 on OS/390
    > is pretty much what defines a "big-iron" database. Oracle on NT is nowhere near as good as it is on Solaris. But Sybase on NT is
    > actually quite good - almost as good as SQL Server on the same hardware. Sybase 12.x on HP-UX is also quite good.

    DB2 UDB actually scales extremely well for warehousing, decision support, search engines, reporting, etc - far beyond anything except maybe Teradata. If you're talking about NT - you're talking about an OS that is two generations back-level. But aside from that personally, I'd rather run a database on unix anyway - much better scriptable and command-line environment.

  115. The "Eight Reasons Against" Were Incredibly Weak by Master+of+Transhuman · · Score: 1

    I just read the ten pages of comments and added my own. The guy gets slagged totally and deservedly so.

    I'm not a big fan of MySQL. I tend to think that it might be okay for serving up dynamic Web sites, but for serious DB work outside of Web page serving where you are manipulating corporate INFORMATION in various domains by dynamic queries that may be complex, it's not that great - in fact, it's pretty weak. PostgreSQL has much better features for use in that scenario.

    But the reasons cited not to use MySQL are simply pathetic. I mean, you've got an Oracle DBA, so go Oracle so he's "comfortable"? Supposedly this saves you money over time? WTF?

    --
    Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
  116. Re:Reasons not to use MySQL? These are stupid reas by hobo+sapiens · · Score: 1

    "So, when you talk about how much you gained going from MSSQL to Oracle, I'm pretty sure most of that's because of your preference for Oracle,"

    *sigh* Then re-read the comment. I said I was more experienced with MSSQL and had to move. You cannot justly prefer what you do not know so well. I had been working with Oracle for a long time, querying remote databases etc, but that's a far cry from actually designing an application's database on an Oracle server. Then you have to know the nuances. Now I know both Oracle and MSSQL well, and I prefer Oracle.

    Indexing is totally different in MSSQL and Oracle. For example, the clustered index in MSSQL is the most important index there is. In Oracle, there is no such thing (there are cluster indexes, but cluster has a different meaning in Oracle). So this means that you have to think totally different about indexing an Oracle DB. Honestly, I am not sure of what exactly behind the scenes makes Oracle indexes more efficient (or seem more efficient). But my experience is that querying Oracle is very fast, much faster than MSSQL.

    MSSQL feels like a toy when you are used to Oracle. Not to say it's a bad database. I like MSSQL. But for high volume, high availability, high traffic websites, in the corporate environment, I'd choose Oracle. At home, I'd choose MySQL. Because it's better than MSSQL? Not so much. It's about the same, to me. But the difference is the price. MSSQL ain't free, unless you want a junior version. So MS has priced what is a very competent database out of the market. It's not as good as Oracle, not as free as MySQL. That's a tough spot to be in.

    --
    blah blah blah
  117. Did you read your link? by Estanislao+Mart�nez · · Score: 1

    You can set SQL modes, such as STRICT_ALL_TABLES, that will cause MySQL to reject invalid data instead of truncating it.

    Did you read through the docs you linked? Using STRICT_ALL_TABLES will cause MySQL to reject some invalid data, but will let other data get through. From your link:

    Strict mode disallows invalid date values such as '2004-04-31'. It does not disallow dates with zero parts such as '2004-04-00' or "zero" dates. To disallow these as well, enable the NO_ZERO_IN_DATE and NO_ZERO_DATE SQL modes in addition to strict mode.

    More generally, the tangle of interacting configs needed to make MySQL behave in a still only approximately sane way gives the lie to the myth about it being so easy to set up and use.

  118. You know, that new default is not really an improvement. The behavior every other database has in the same situation: generate an error and roll back your transaction.

  119. Re:MySQL the db for people who don't understand db by B_SharpC · · Score: 1

    words "scalable", "high availiability" and "transaction". Wow. Those are really big, big words. LMAO
    See Spot Run. Run Spot Run. LOL

    I can now see why you hesitated to clarify your wordy evasions instead of worthwhile technicals.

    If words like "scalable" and "transaction" are your most important criteria, you listed those not I, your systems must be in disarray or in decline. Harvard once determined that only 1 in 100 experts can clarify adequately. sigh.

    It is MBA types like yourself who quickly turn healthy companies toward the road of decline because you lack formal education that experience cannot fill. LOL
    --
    Score & Karma: SASA: Slashdot Approval Seekers Anonymous
  120. Re:Reasons not to use MySQL? These are stupid reas by Organic+Brain+Damage · · Score: 1

    "You cannot justly prefer what you do not know so well."

    I defintely prefer a Ferrari to a Sienna mini-van, but I know the mini-van so well...

    You talk about feel, but you don't talk about comparing Oracle and MSSQL and (DB2) with serious benchmarks (competitor reviewed even). When they're benchmarked and submitted to TPC, MSSQL doesn't win on most tpmC per system. Oracle does. With 4 million to 1.2 million from MSSQL. However on cost per tpmC MSSQL's most cost effective configuration is twice as efficient as Oracle's most cost efficient configuration. So, if you're setting up an $11 million system for your corporation, you're probably better off with Oracle.

    http://www.tpc.org/

    So, MSSQL might seem expensive compared to MySQL, but it's certainly inexpensive compared to Oracle, and for at least some corporate purposes, it will provide enough performance to do the job.

    My point, that developers/DBAs who want to make a product perform do better with that product than developers/DBAs who feel saddled with the product is still a valid point, even inside Corporate IT shops. Even if it doesn't apply to you personally.

    Postgres isn't making the list. Neither is MySQL.

  121. Re:Reasons not to use MySQL? These are stupid reas by hobo+sapiens · · Score: 1

    "I defintely prefer a Ferrari to a Sienna mini-van, but I know the mini-van so well..."
    Fair enough, good point.

    Impressive benchmarks. *yawn* Sorry, but benchmarks are pretty much useless. Just a SWAG here, because I don't want to look up every DB vendor, but I'd bet that every DB vendor can point to benchmarks in which their product excelled. Benchmarks cannot take most factors into account that impact real world performance. They are just theoretical wankfests.

    Real world performance, not benchmarks, is what matters. Not saying SQL Server is bad. I just wouldn't be as likely to use it as Oracle or MySQL. You feel differently. Fine. I'm glad all those DBs exist so that everyone can use their choice DB.

    --
    blah blah blah
  122. Re:MySQL the db for people who don't understand db by einhverfr · · Score: 1

    I only use the most recent version of MySQL, and I have the exact opposite perspective. MySQL does what a database is suppose to do really well - simple relational queries onto data. MySQL's transactional processing; the ability to set a savepoint and then commit or rollback, seems flawless to me. You almost have that right. A "database" is a place to store data. For many things, MySQL does that fine. So does BDB, etc.

    However, the term "RDBMS" tends to refer to databases which base their storage models on relational algebra. Because of this, it is *not* designed to do what you say, but rather a whole lot more (contraints, triggers, functions, views, etc).

    Oracle on the other case, seems to be doing exactly the opposite of what a database is supposed to do - it's encouraging you to push more and more of the application layer into the database (first plsql, and now Java at the database layer?). I share your dislike of Oracle in many areas. Oracle has some strange issues involving comparing zero-length strings and NULL's. This does not seem to me to be mathematically correct, but YMMV.

    I just want to create tables, select, insert or update data. Not much else. That's what Codd truly intended. Codd would roll over in his grave if he saw the bloated mess that Oracle is today. And you can design a horrible denormalized schema in Oracle just as much as MySQL - neither force any form of normalization at the RBDMS level. (Some applications merit denormalization) MySQL violates Codd's 12th rule, and by my interpretation, his fifth rule as well.

    Why are you using SQL in the first place? Why not a simple object persistance layer built on BDB? Or any of a number of other good object databases? That really seems to be what you are after, and it would allow you to avoid coding in more than one language in order to get your work done.

    Not to even mention the absolute shameful way Oracle considers, manages and patches security issues. No argument there....

    MySQL is a simple, free relational cruncher. I can't believe a true finance architect considers Oracle more robust that MySQL, especially when its comes to security. My view is that PostgreSQL is my preferred db of choice. I only use Oracle under absolute duress. Firebird is better but still not preferred.

    Oracle has a number of screwy issues that I cannot stand (mostly involving NULL handling, but also I find their concept of schemas relatively backward, compared to most other RDBMS's which recognize that the standard is broken in this regard). However, if I need an RDBMS, and MySQL and Oracle are the last two left on earth, I would be torn between my love of even the approximation of open source and the need to do things in a way which approximates mathematically correct modelling...

    Neither one though would score highly on my list of choices.
    --

    LedgerSMB: Open source Accounting/ERP
  123. Re:My own reason not to use MySQL by einhverfr · · Score: 1

    I use MySQL 5.1.x for my business and when I started I found that this was a well supported engine and went ahead. Now that we've got more experience on it and scratched below the surface we will consider the switch (propably to Postgress). Here are my reasons:

    - support for stored procedure is still in infancy. Expecially error handling. There is no way to raise a custom error and the compiler gives imprecises error messages. There is not trace mecanism to troubleshoot them. PostgreSQL's PL/PGSQL allows for custom errors (and has for a long time), and more recently (last couple years) addes support for trapping exceptions without rolling back the transaction.

    - the availability of multiple storages back-end may appear as a feature but I believe this should be handled internally. Especially some critical features such as referential constraints are implemented on SOME back ends. This complicates the DBA job tremendously. And break's Codd's 12 rules....

    - the first back end to support ref. constraint is InnoDB. It has been acquired by Oracle. It is unclear what will happend. Can a GPL licence be withdrawn? No, but they can use it to make life really hard for MySQL AB (the company) which has to resell additional permissions. And they can kill further development.

    - when writting a trigger, it is impossible to cancel a transaction. This remove almost all interest in triggers.

    - the commercial licencing model requires you to pay every year. Although the price are low compared to other commercial DB, this is a major hindrance when someone want to embbed this engine into the produc.

    Bascally, for non-critical internal application, MySQL is perfect. For advanced critival applications or sellable products, I have trouble to go that way. I would go back and say that for non-critical single-db app where SQL is the preferred interface, MySQL is perfect. The further you move from that (rare, and usually temporary state), the more problems you will face.
    --

    LedgerSMB: Open source Accounting/ERP
  124. Re:Reasons not to use MySQL? These are stupid reas by Jamie+Lokier · · Score: 1

    The number of comparisons is different from, and larger than, the number of page accesses.

  125. Re:TFA is idiotic - regardless of opinions on MySQ by stripes · · Score: 1

    He does absolutely nothing what-so-ever to back those statements up. Why is a GPL a "non-starter" for "some" environments? What environments?

    Easy enough, places that want to ship a product (assuming the interface libraries are GPL not LGPL). Or just places that want to ship a product with the database embedded inside it. They might be better served with Postgress, or sqlite. Or licensing Oracle or something (of corse if licensing a database is an option mysql can do that).

    Which doesn't mean the article wasn't kind of weak, and half the points aren't lame...but this one at least made sense.

  126. Re:Reasons not to use MySQL? These are stupid reas by Organic+Brain+Damage · · Score: 1

    "Sorry, but benchmarks are pretty much useless." When it comes to most benchmarks, I agree with your statement. But even you say "pretty much useless" not "completely uesless." TPC.ORG database benchmarks are accurate and sufficient to model real-world database behavior. Take a careful look at their benchmarks. You might learn something about databases.

  127. Re:MySQL the db for people who don't understand db by try_anything · · Score: 1

    When you have a large (0.5TB) database that requires quite literally 100% availability, globally, 24x7, you cannot afford to be playing with broken toy database systems.


    You have a database system that instantly solves all communications problems that occur between it and any client anywhere in the world? That's awesome! I can't wait to run one at home so my internet access never goes down.
  128. One Reason to not use MySQL by Anonymous Coward · · Score: 0

    You already know how to use a Relational Database and don't want to use something inferior to MS Access.

  129. Re:TFA is idiotic - regardless of opinions on MySQ by walterbyrd · · Score: 1

    Are you saying that a non-gpl product can not legally be used with MySQL? Because I don't think that is correct.

    Also, how common is it to embed an entire database system within a product? BTW: you could not do that with most non-gpl products either.

  130. Quality Control by jackv · · Score: 1

    There is also the issue of quality control. Some of the bigger propietart systems have got amazing levels of quality control versus MySQL