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."

39 of 288 comments (clear)

  1. 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".

  2. 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.
  3. 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 larry+bagina · · Score: 4, Informative

      #8: "February 31, 2007"

      --
      Do you even lift?

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

    3. 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
    4. 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]
    5. 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
    6. 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,
  4. 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...");

  5. 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...

  6. 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 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.

  7. 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
  8. 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.
  9. 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!
  10. 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.
  11. 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.
  12. 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...
  13. 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.
  14. 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.
  15. 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.'"
  16. 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.
  17. 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
  18. 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.

  19. 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/
  20. 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.

  21. 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.
  22. 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.

  23. 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?

  24. 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?
  25. 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
  26. 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
  27. 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
  28. 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.