Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Databases Programming Software IT

MySQL Moves to Prime Time 261

MagLev writes "MySQL, especially version 5.0, is popping up on the radar screens of database gurus who built their reputations and book sales using other SQL databases. Ken North, who did those ODBC performance benchmarks for Oracle, Sybase, and DB2, wrote a recent article about MySQL 5.0. The article profiles mission critical database software and discusses how well MySQL 5.0 fits the profile. It gives good marks to MySQL, except for Java and XML integration."
This discussion has been archived. No new comments can be posted.

MySQL Moves to Prime Time

Comments Filter:
  • So, uh (Score:4, Funny)

    by Anonymous Coward on Wednesday October 05, 2005 @07:09PM (#13725953)
    What time and what channel?
  • Slowly But Surely (Score:5, Interesting)

    by oirtemed ( 849229 ) on Wednesday October 05, 2005 @07:13PM (#13725974)
    OSS can compete with commercial offerings, it just usually takes more time to mature. Now, I'd expect to see a burgeoning market for MySQL support companies or companies offering database services and supports based on customized OSS MySQL sources. I use MySQL for websites and such, it's a great little database but I had no idea how much it scaled: MySQL has a demonstrated capacity for managing very large databases. Mytrix, Inc. maintains an extensive collection of Internet statistics in a one terabyte (1 TB) data warehouse that contains 20 billion rows of data. Sabre Holdings runs the oldest and largest online travel reservation system. It replicates 10-60 gigabytes per day from its master database to a MySQL server farm. The MySQL databases are used to support a shopping application that can accommodate a million fare changes per day.
    • A little ironic, but I think we've got Slashdot to thank for that.

      I suppose that's no surprise -- if you're the largest forum on the net it's no surprise you're bound to push the development of Perl and MySQL.

    • propaganda (Score:4, Insightful)

      by kpharmer ( 452893 ) on Wednesday October 05, 2005 @11:09PM (#13727160)
      I've read the article, am familiar with the product, and am also familiar with data warehousing. This is just propaganda.

      > MySQL has a demonstrated capacity for managing very large databases. Mytrix,
      > Inc. maintains an extensive collection of Internet statistics in a one
      > terabyte (1 TB) data warehouse that contains 20 billion rows of data.

      MySQL is a horrible product for warehousing: no query parallelism, no partitioning, primitive memory management, primitive optimizer, etc, etc. 20 Billion rows in a single table? What would mysql do with that? Any typical warehousing queries would take hours to come back. More likely either the database owners are just logging data someplace cheap, or they are creating hundreds of much smaller tables.

      > It replicates 10-60 gigabytes per day from its master database to a MySQL server farm.

      Ah, a 'server farm'. So, the 20 billion rows are probably spread across dozens of mysql servers. This explains it all. Even SQL Server can do better than that.

      > The MySQL databases are used to support a shopping application that can accommodate a million fare changes per day.

      Yeah, I think db2's most recent benchmark was for something like 3 million transactions a minute.

      This is little more than an advertisement for mysql. A little poking around would probably show that he's on the mysql payroll.
      • Re:propaganda (Score:2, Insightful)

        by kevinadi ( 191992 )
        I agree that it sounds like propaganda. However I doubt he's on MySQL payroll.

        Anyway you're right. MySQL actually doesn't do very good if a table has a million entries. It may seem fast at first, but try to do a select on a table with a million entries, joined with itself three times, and do a group by command. It's gonna take a while to finish. Granted, it's minutes instead of the usual seconds, but I would tend to think that commercial databases would do better than that.

        IMHO MySQL is fine as long as you
        • Re:propaganda (Score:5, Interesting)

          by mattcasters ( 67972 ) on Thursday October 06, 2005 @05:27AM (#13728277) Homepage
          Sure, how about comparing MySQL to other free & open-source databases.
          PostgreSQL, Firebird, MaxDB and Ingres all handle the milions of rows *a lot* better.
          Especially PostgreSQL seems to stay on par with Oracle, even offering (primitive) support for table partitioning, bitmap indexes etc.

          If I would try to do data warehousing on an open source database, it's probably going to be PostgreSQL.
        • Re:propaganda (Score:3, Insightful)

          by grazzy ( 56382 )

          Anyway you're right. MySQL actually doesn't do very good if a table has a million entries. It may seem fast at first, but try to do a select on a table with a million entries, joined with itself three times, and do a group by command. It's gonna take a while to finish. Granted, it's minutes instead of the
          usual seconds, but I would tend to think that commercial databases would do better than that.

          I do exactly this on a database that is around 400 mb large (without the indexes). There are no "minutes", theres

        • Re:propaganda (Score:4, Insightful)

          by kpharmer ( 452893 ) on Thursday October 06, 2005 @09:33AM (#13729318)
          > As for me, I'm happy that in spite of taking minutes, it's giving me the
          > correct answer. That's all I need and I don't think it's fair to directly
          > compare MySQL to a $20,000 database. Of course it won't perform as good.
          > It's like comparing a Toyota to a Ferrari and complaining that the Toyota
          > won't go as fast.

          Sure - if it only takes a few minutes every now and then that might not be a big deal.

          But regarding the cost of the alternatives:
              - postgresql is freer (no way of having to face $600/year charges as with mysql), and has a better optimizer.
              - oracle is only around $1-2k for a small footprint database. this wouldn't
                  include partitioning, but at least you'd get a smarter optimizer.
              - db2 is around $700 for a 2-way server. this would provide partitioning
                  (via mdc or union-all views), parallelism, and a better optimizer.
              - sqllite is freer (again, no cost), and I suspect has a better optimizer.

          So, for $700 once, plus maintenance (18%/year?) you'd have a vastly faster product than MySQL - which can cost you $600/year. And you don't need to talk to a lawyer to figure out whether or not you need to pay for mysql. Or you could get other products that are faster with complex queries and are completely free.
  • Gosh (Score:4, Funny)

    by Mateo_LeFou ( 859634 ) on Wednesday October 05, 2005 @07:13PM (#13725975) Homepage
    Might we see an end -- or at least pause -- in the constant "MySQL sucks"-oriented comments/blog entries/ etc?
    • Re:Gosh (Score:5, Insightful)

      by Michalson ( 638911 ) on Wednesday October 05, 2005 @09:19PM (#13726663)
      It's not that it sucks, it's that it just doesn't stack up.

      The added features of MySQL 5, if put into the context of the auto industry, would be like a car manufacturer announcing that some of their 2005 models would now come with airbags and anti-lock breaks. Yes, it shows improvement, and yes, it may plug some longstanding criticisms, but in the larger picture it still means that company is years behind everyone else.

      MySQL 5 would have been a great advancement to put it in serious technological competition with other databases...if it had been released in 1999 or 2000. The reality is that Postgre is in version 8 with serious Windows support, Oracle is at 10g with gobs of new features 1% of DBAs will use, and Microsoft is in the process of unleashing a major new version of SQL Server onto a world that has done it no wrong. MySQL has only managed to catchup to where the industry was 5 years ago. Everyone else has kept moving.

      Real DBA's don't like MySQL for the same reason real web developers don't like IE. They're both behind the times, fail to live up to standards (CSS/ACID), and only got to where they are because of aggressive bundling. IE is "popular" because it's preinstalled and thus used by the average joe who doesn't know any other "internet". MySQL has made sure it is sitting on every free and cheap LAxP host out there, resulting in droves of kiddie web developers whose experience involves a few web tutorial on PHP and MySQL being locked into its heavily proprietary interfaces and dodgy "optimizations".
      • Re:Gosh (Score:4, Insightful)

        by superpulpsicle ( 533373 ) on Wednesday October 05, 2005 @09:43PM (#13726775)
        There is a decent sized market out there where organizations don't need a complicated schema or fancy features. I have seen places where MySQL is heavily preferred due to speed and liteness.

        They just want to do your average query on a fairly large db, but do it fast, hella fast. They'd rather put MySQL on a fast proprietory filesystem. Stripe and load balance off some fast storage arrays. And just blast away.

        • But there is no marker out there that does not need ACID compliance, just those who don't know they need it.
        • Re:Gosh (Score:4, Informative)

          by kpharmer ( 452893 ) on Wednesday October 05, 2005 @11:01PM (#13727123)
          > There is a decent sized market out there where organizations don't need a
          > complicated schema or fancy features.

          then they might want to check out sqllite: a simple and completely free database *without* bizarre integrity problems.

          > They just want to do your average query on a fairly large db, but do it fast,
          > hella fast. They'd rather put MySQL on a fast proprietory filesystem. Stripe
          > and load balance off some fast storage arrays. And just blast away.

          if they're blasting away with mysql, then they aren't doing much with the data:
            - no parallel query capability
            - no memory tuning
            - no partitioning
            - no optimizer sophistication

          In short, unless you've got extremely simple queries looking up small sets of rows - mysql is slow as a pig, and can't compete with the commercial products. Again, if you *know* what you're doing.

          And assuming that you're interested in data integrity and are using the innodb database, then postgresql is just as fast. Possibly *much* faster if you're writing moderately complex queries with 5 or more tables.

          The idea that mysql is fast is a myth that came from php kids playing with a database for the first time. Once you actually compare the products available today mysql has nothing going for it - except quite a lot of inexperienced fans. Which, I have to admit, is probably worth quite a bit.
      • What in the hell is "postgre"? Do you mean "PostgreSQL"? No such thing as "postgre". It's pronounced "post gres cue ell". Or "Postgres" for short, if you really wanna leave off two letters.
        • not Postgres (Score:5, Informative)

          by cpeterso ( 19082 ) on Thursday October 06, 2005 @01:10AM (#13727667) Homepage

          Actually, "Postgres" is was a precursor to "PostgreSQL". The database started as a university research project called Ingress. A follow-on version was called Postgres (i.e., Post-Ingress). SQL support was added later; thus PostgreSQL (Postgres + SQL).
      • Re:Gosh (Score:5, Informative)

        by consumer ( 9588 ) on Wednesday October 05, 2005 @10:32PM (#13727002)
        Fails to live up to ACID? MySQL has had ACID transactions for years now. If you didn't know this, you have no place commenting on MySQL at all. It has the same sort of MVCC transaction and locking support that PostgreSQL does, and has since version 3.23.
      • Re:Gosh (Score:2, Funny)

        by Anonymous Coward
        Wow. Just... wow.

        The past week or so I've been learning PHP and SQL (web tutorials of course, why the fuck would I buy a book on it), and working on my site (which is hosted on my PC, using apache).

        Here I thought I've been actually learning something, and growing an appriciation for web developers (and developers in general), but according to you, I'm just a kiddie? Fuck you. It's people like you who drive away "normal" people from actually being interested in things like this. As for mySQL, yes I used it b
        • Here I thought I've been actually learning something

          You may be learning the rudiments of SQL, relational databases and a web templating system, but you need to be aware of the limitations and quirks of MySQL. Too many people are leaving college having only used MySQL, and end up perpetuating the myth that MySQL is particularily fast in all but the simplest applications and that the missing features are somehow "unnecessary" in all circumstances. That last thing is what fucks me off about MySQL. For year

  • by dynooomite ( 920368 ) on Wednesday October 05, 2005 @07:14PM (#13725979)
    I thought everyone was just in love with Java and XML?
  • Apparently not (Score:3, Interesting)

    by Anonymous Coward on Wednesday October 05, 2005 @07:16PM (#13725993)
    'prime time' enough for Sun [computerworld.com.au].
  • by mister_llah ( 891540 ) on Wednesday October 05, 2005 @07:17PM (#13725999) Homepage Journal
    MySQL is free, that's a pretty hefty plus for many applications. ... though it might not be the best choice for an enterprise wide solution just yet...

    Will it dethrone any of the biggies? Not for a long time and not without improvement.

    We're not talking the timescale for Linux to take ground in the desktop war, since databases are already technical... there isn't that 'learning curve' from the user (well, there is, but the 'user' shouldn't be as terrified as a Windows user switching to Linux)... :)
  • New features (Score:5, Informative)

    by Spy der Mann ( 805235 ) <`moc.liamg' `ta' `todhsals.nnamredyps'> on Wednesday October 05, 2005 @07:17PM (#13726001) Homepage Journal
    (for the lazy)

            * capacity for very large databases
            * stored procedures
            * triggers
            * named-updateable views
            * server-side cursors
            * type enhancements
            * standards-compliant metadata (INFORMATION_SCHEMA)
            * XA-style distributed transactions
            * hot backups.
    • As long as you are handing out information....

      Any word in improvements to replication? Specifically merge (multi master) replication and sliced (replicating sub sets) replication?
    • For the lazy, or those who cut-and-paste for karma and miss major components:

      • The Server Mode variable (allows varying tolerance of 'bad' data & sql standard compliance, fixing the truncation 'feature' that everyone complains about)
      • The Archive Storage Engine (compressed, insert & select only engine ideal for logging)
      • The Federated Storage Engine ('virtual' tables, allows for cross-database joins)
    • Submitters: Use Coral Cache!
      Before: website.com/path
      After: website.com.nyud.net:8090/path


      Actually, as I'm behind a corporate firewall that _doesn't allow ports other than 23 and 80_ I'd rather they didn't...
  • Yay for MySQL (Score:2, Interesting)

    by Sliptwixt ( 606116 )
    As a developer who went from Open Source (5 years) to .NET programming, the only thing I *really* missed was working with MySQL. Fast, light, stable, and easy to work with. With all the new version 5 features, plus the help of adapters like ByteFX [sourceforge.net] , MySQL is now part of a valid enterprise solution to .NET developers (IMHO).
    • Re:Yay for MySQL (Score:2, Interesting)

      by The Bungi ( 221687 )
      The ByteFX provider has been discontinued since early last year. MySQL hired the guy and he abandoned his original work to do the MySQL adapter, which like all of their stuff is 'free-licensed' under the GPL, so you're screwed if you want to do anything other than commercial and you happen to dislike having the GPL forced on your (equally free but not released under a viral license) code.

      I started using the ByteFX provider, reporting bugs on sf.net and whatnot because it was licensed under the LGPL. Then

  • MySQL != SQL (Score:5, Interesting)

    by SharpFang ( 651121 ) on Wednesday October 05, 2005 @07:19PM (#13726015) Homepage Journal
    One thing you must remember about, when considering MySQL. It's a relational database, all right, but it doesn't really support SQL.
    It supports most of SQL syntax, so SQL gurus will find it easy to learn. Most of basic SQL stuff works. But more advanced constructs like nested queries are either unsupported or terribly unoptimal, and some SQL features are there just for compatiblity sake but shouldn't be used at all. Instead you should learn and use a bunch of MySQLisms that aren't found anywhere else and do the same thing, much better (faster, safer, bug-free). So if you have a database app and ponder what database to integrate it with, choosing MySQL means more than plain tweaks. It may mean deep hacks. MySQL is devilishly fast when it comes to simple queries. Few databases can beat it in this domain. But it comes with a cost, shortcuts taken prolonging/breaking many other tasks. So choosing MySQL is a dangerous choice - it's a lock-in.
    • Re:MySQL != SQL (Score:3, Insightful)

      by C. E. Sum ( 1065 ) *
      What are the biggest areas you see these problems?
      • Re:MySQL != SQL (Score:4, Informative)

        by Sheetrock ( 152993 ) on Wednesday October 05, 2005 @07:42PM (#13726147) Homepage Journal
        Bringing advanced SQL queries into MySQL and moving advanced (My)SQL queries out of MySQL.

        In both cases, you want to look before you leap. Do some trials to see how long porting will take before giving a time estimate, test the new system thoroughly (although that's recommended practice for switching RDBs anyway).

        That's not to say MySQL is the only platform where you risk lock-in. Database triggers can be hooked to implementation-specific things, for example. Unfortunately as with programming there are trade-offs to be made between optimization and portability and if you're pushing lots of tuples you opt for the former.

        • " Bringing advanced SQL queries into MySQL and moving advanced (My)SQL queries out of MySQL."

          You should treat your SQL queries as a language. You can use the run of the mill translation libraries that way.

          When you think about it that's exactly the problem, translating from one language to another. Lucky for us that problem is common enough to have gotten plenty of attention.
    • Re:MySQL != SQL (Score:5, Informative)

      by matt4077 ( 581118 ) on Wednesday October 05, 2005 @07:36PM (#13726115) Homepage
      If MySQL supported only a subset of the SQL Standard (big IF since it does have stuff like nested queries, transactions, triggers etc now), thats the opposite of lock-in. Obviously, there is no harm in using only a subset of SQL and then moving to a different RDBMS. It's exactly the Oracles and Microsofts with their embrace & extend policy that makes it difficult to switch: Oracle has _every_ (well, most - not the excellent fulltext search) feature of MySQL, so there is no problem to switch.
      • MySQL has had nested queries and everything else you listed for quite some time. Things move ahead - stop using 3 year old reasonings.
    • Re:MySQL != SQL (Score:5, Insightful)

      by vadim_t ( 324782 ) on Wednesday October 05, 2005 @07:40PM (#13726136) Homepage
      I share your dislike of mySQL, but database lock-in is nearly impossible to avoid.

      It can be done if you do something simple, like say, a forum, but for anything large, advanced features are incredibly useful, and will make sure you're dependent on that specific database.

      For instance, it's very desirable to have everything in a stored procedure. Not only this gives a performance benefit, but it also increases security. Building your database this way you can ensure that nobody will ever be able to insert bad data. But the price of that is that converting to a different DB will be really difficult.
      • Re:MySQL != SQL (Score:3, Insightful)

        by shmlco ( 594907 )
        Constraints and validation are one thing, but IMHO it's NOT "very desirable to have everything [sic] in a stored procedure".

        Placing extensive amounts of business logic in SPs can lead to fractured code bases and schizophrenic systems, vendor lock-in, reduced scalability, extremely difficult debugging, and porting/cross-platform problems.

        If performance is so critical that SPs can make or break a system, then you should probably consider changing the architecture by adding application tiers.

        • Re:MySQL != SQL (Score:3, Informative)

          by vadim_t ( 324782 )
          Well, it depends on the environment, of course.

          IMO, for instance, it doesn't make much sense to write code full of page-long SQL queries. Not only it looks ugly in the source, but it also introduces potential problems when you find out somebody is using an ancient version of the application that does something wrong.

          If your code to create a client is inside a stored procedure, you have several advantages: SQL is in the database, where it belongs. Any bug fixes can be instantly applied to everybody who uses
          • SQL statements belong in neither stored procedures nor in the code.

            ORM tools, like Hibernate and TopLink, allow you to map objects to relational tables, and generate the SQL on the fly. (Hand-tuning is still possible, though you would not put hand-written SQL in code, but in some kind of a properties file that is loaded at runtime.) Hibernate, for example, supports a variety of SQL "dialects", which it uses to generate SQL that is compatible with the vendor that you (or your customer) chooses to use. You sh
            • Re:MySQL != SQL (Score:3, Informative)

              by tweek ( 18111 )
              As someone who works for a company that uses Hibernate pretty heavily, ORM is not the pancea that everyone claims. I like ORM as much as the next guy but in an effort to write generic SQL, your ORM will usually use a pretty inefficient route.

              Hibernate and ActiveRecord don't run EXPLAIN plans on queries. If you've ever looked at some of the SQL generated by hibernate, it can make you cringe. We created indices to match what hibernate was using only to move the logic into an sproc to get the performance we re
              • The creators of Hibernate are the first to admit that it doesn't solve every problem, and it wasn't intended to. What it does is produces good enough SQL (at least as good as a person) for most problems. Hand-crafted SQL or HQL can still be written (and externalized), and sometimes you just need to go as low-level as possible (JDBC, for ex).
                • True. We actually do that in some places. We do all operations on the database as dirty reads except in several places where we simply grab a connection from Hibernate and hit the database directly. Saves us the hassle of maintaining two connection pools to the database just to get different isolation levels.

                  I get the feeling alot of times that many ORMs lull the developer into a false sense of security. I can't count how many times our DBAs have heard "This part of the application is performing slow" only
            • You seem to be approaching the situation with the mindset that database portability is of primary importance across all projects. Why would I add 10% of overhead in abstracting my SQL out when I know there's only a 2% chance that the product will have to move to another DBMS? Then there's the added issue of relying on someone else's decision of how my SQL should be written. I haven't used all the query builder tools in the world but I haven't yet found one that can help me write SQL as fast as I can on m
              • I agree that database portability isn't of primary important in all projects. But portability is a common requirement, and there are good reasons besides portability to stay away from stored procedures. Maintenance is a huge one. Scalability is another. Separation of model and business logic is another. I'm not sure where the "10% of overhead" figure comes from... I've never felt my that my productivity suffered by writing portable SQL or using tools to do it for me. The amount of money a company spends on
          • Putting everything is stored procesures makes it harder to maintain the code. In my opinion the database is not the place for business logic.

            By the way, although it's extremely common for VB developers to embed SQL into their code it's not considered good programming practice.
          • Re:MySQL != SQL (Score:3, Insightful)

            by Jaime2 ( 824950 )
            I've done a lot of performance testing and taking batch x by submitting it raw vs. putting it in a procedure have only very small differences in performance. The more processing is done, the smaller the difference. I've even seen cases where preparing and executing ad-hoc SQL is slightly faster than using an existing SP.

            The only time SPs are significantly faster than ad-hoc SQL are when the two are different. Every database worth a crap today implements ad-hoc batch caching. That means that SQL blocks
      • Um, no, not really (Score:2, Insightful)

        by Anonymous Coward
        For instance, it's very desirable to have everything in a stored procedure. Not only this gives a performance benefit, but it also increases security. Building your database this way you can ensure that nobody will ever be able to insert bad data.

        As somebody who maintains the database abstraction layer for a very complex enterprise application platform that runs in Oracle, SQL Server, and DB2 (the latter of which I was the primary porter), I don't think you're right at all on this point. It is possible t

    • It supports most of SQL syntax, ... Instead you should learn and use a bunch of MySQLisms that aren't found anywhere else and do the same thing, much better (faster, safer, bug-free).

      AFAIK, the closest thing to pure ANSI SQL compliance is SQL Server, which is pretty limited as far as very large databases go. How is the above different from, say, Oracle? Orachle uses non-standard CLOBs, sequences, connect by, doesn't do "join" syntax (or was join recently added?), etc.
    • Re:MySQL != SQL (Score:2, Informative)

      by Anonymous Coward

      It's a relational database, all right

      Careful.. MySQL (and PostgreSQL and Oracle) are *SQL* databases. The relational model is quite different from SQL.

      Example: in the RM, every value for a given attribute (column) must be of the same type. In SQL, some values can be "NULL" which is a special value, not drawn from the type.

      Example: in the RM, attributes are unordered. In SQL, attributes have a consistent left-to-right ordering (this violates the Information Principle which states that all data must b

    • One thing you must remember about, when considering MySQL. It's a relational database, all right, but it doesn't really support SQL.

      To be precise, it only partially complies with the relational model, and doesn't really support SQL, which doesn't comply with the relational model either.
  • We chose Postgresql (Score:5, Interesting)

    by Ritz_Just_Ritz ( 883997 ) on Wednesday October 05, 2005 @07:32PM (#13726090)
    I'm mostly just the digital plumber in my firm, but about a year and a half ago we were in a situation where it was time to migrate our production servers off of SQL Server 7 to "something else." The "something else" needed to be Linux friendly since we were phasing out M$ in our production environment in general. So we hired 2 former Oracle employees and expected them to tell us that Oracle was the answer. After about a month of nosing through our existing code, we were given a menu of options with their preference being postgresql. Mysql didn't make the cut because it lacked "important features" and wasn't "sql compliant", lacked "triggers", and something about "locking" which escapes me at the moment. I don't know a database from a hole in the ground, but that was our experience. We've been using Postgresql with RHEL 3 and RHEL 4 without incident. Very good for us...not so good for Mr. Ellison and Mr. Gates. Cheers,
    • by vadim_t ( 324782 ) on Wednesday October 05, 2005 @08:00PM (#13726240) Homepage
      It was a very good decision.

      Triggers are queries that are run automatically when the associated table or view is changed. It's generally considered to be a bad practice to overuse them, but they have a few very nice uses.

      One is implementing complicated checks. You can make an update query fail if any fields don't meet arbitrary requirements. That's good because you can use that to ensure that everything inserted in the database makes sense.

      Another is logging. You can easily make a trigger that inserts the previous content of a row into a different table. Can come really handy for debugging, or when you simply want to easily make sure any changes to some data can be tracked. Also handy if you not only want to deny access to something, but also record somewhere that somebody tried to touch it.

      Another use can be gradual redesign. If you're phasing out a column, you can do it in steps: Removing its usage from the latest version of your DB interface, and adding a trigger that ensures it has some value that doesn't confuse older versions. This can be used to provide smoother upgrades.

      Locking is a major problem. In a database locks must be placed on data to maintain the consistency. You definitely don't want a database that locks the whole table without a really good reason, because as soon as table locks start happening, your performance goes to hell, as everything else will have to wait.
      • Postgresql is an excellent database, and is quite often my personal DB of choice.

        One thing prevents me recommending it at places I work is that when I want to do a count(*) on very large datasets (not just entire tables) the response time goes through the roof. This seems to be because table statistics are only updated when the database is vacuumed rather than maintained in an ongoing fashion.

        There are various work arounds involving triggers, updating sequences, and estimates based on last statistic upd
        • by Penguin ( 4919 )
          You would experience that in several row level locking engines, e.g. InnoDB and Oracle (thought I might be on thin ice here regarding Oracle)

          InnoDB has the same behaviour:
          http://dev.mysql.com/doc/mysql/en/innodb-restricti ons.html [mysql.com]
          "InnoDB does not keep an internal count of rows in a table. (This would actually be somewhat complicated because of multi-versioning.) To process a SELECT COUNT(*) FROM t statement, InnoDB must scan an index of the table, which takes some time if the index is not entirely in the b
          • OK, from memory I have have probably only tried this on MyISAM tables. I haven't tried the InnoDB engine yet so I'll give it a spin just for kicks.

            Yes, count(*) does seem to get used a lot in web apps, and web apps are nearly 100% of my work these days. It's a shame because Postgres feels so much more like a 'real' DB than MySQL! I can't tell a client, "Sorry, but we can't run that query in your app... it will just take too long", they are going to ask why, and how I can provide that data they want. I thi
    • Why is PostgreSQL not as well-known/popular as mySQL? Whenever you hear of an OSS database, it's almost always mySQL, mySQL, mySQL. Especially on Slashdot. Hoenstly, I don't get it, it's not very good now, it's been even worse in the past; why is it so popular if it's that much worse than PostgreSQL? DB lock-in, momentum? Seriously???
      • It's simple (Score:3, Insightful)

        by jocknerd ( 29758 )
        MySQL is owned by a company, MySQL AB. PostgreSQL is an all-volunteer organization, sort of like Debian is to Linux. Sure, there are a few companies that work with PostgreSQL, such as Command Prompt, but they don't control the direction of PostgreSQL. MySQL AB controls all aspects of the MySQL database. Plus, being a company, they have the money to promote it.

        This is one of the reasons why it is so much more popular than PostgreSQL. Another reason is that around the time of PHP taking off, 1998 or 1999
    • That is a wonderful story, and I like it. But what exactly does it have to do with the article and post's point that the brand new MySQL 5 may be ready for some enterprise applications?

      I can tell you some nifty stories about FoxPro and dBase, and they are database yarns as well. But this post was about a new version of MySQL... which your comment really had nothing to do with... unless I'm missing something.

      --
      Avn

  • So the perl tool come with MySQL 4.x, mysqlhotcopy isn't "hot copy"? What's so "hot" about the new "hot copy"?
  • innodb and fulltext? (Score:4, Interesting)

    by allanw ( 842185 ) on Wednesday October 05, 2005 @08:01PM (#13726245)
    Can you use transactions, and have referential integrity and fulltext indexing on the same table yet?
  • by nighty5 ( 615965 ) on Wednesday October 05, 2005 @08:06PM (#13726279)
    I used to love MySQL back in the hayday, but then they changed their license model, thus it was "good night sweet prince".

    Most other decent databases use something similar to LGPL for use of their libraries, thus there is no need to disclose your source code in an application that uses the database. This is rather a critical feature identified by almost all database vendors. Even Microsoft SQL has an LGPL-like license that doesnt mean you have to share your code.

    Once MySQL was reaching critical mass, they decided to change the rules and restrict the license. PHP and others revolted and dumped MySQL for SQLite as the default database for PHP 5. Some could argue it was due to library mixup hell, with multiple versions of libraries on the system, but we all know the main reason was behind the license.

    MySQL got a bit scared and made this silly license exception to the top 20 FOSS projects (don't quote me on that, recalled from memory) so they could be LPGL.

    In the process I moved all my code to PostgreSQL and havent looked back.

    • Oh well, freeloaders get bitter when the free ride ends - or when they think it might end? or maybe they don't like the license for some reason? (I guess I'm not sure what the issue is, but I digress)

      I use mysql and love it. Not only are the availability and price unbeatable (it ships with my OS, how much easier could it get?) but the performance is truly outstanding. Predictably though, the mysql-bashers who are stuck in 1998 will arise to tell us how mysql can't do subqueries, or has no transactional integrity, or whatever other fairy tales they might dig up at random

      Why can't we just admit that mysql is a useful tool in many situations, and move on?
    • PHP and others revolted and dumped MySQL for SQLite as the default database for PHP 5. Some could argue it was due to library mixup hell, with multiple versions of libraries on the system, but we all know the main reason was behind the license.

      yeah, they picked SQLite because they had problems with MySQL and postgresql. I think it's very telling that they didn't pick postgresql.
      • Did you actually look at PostgreSQL's license before writing this? They use the BSD license, which is very similar to PHP's, and has none of the issues with restriction that MySQL did. Perhaps the choice of SQLite as the default database is telling you that SQLite is very small and very fast, and if you don't need the power of a real RDBMS (which most web applications don't), it's a far more lightweight solution than either PostgreSQL *or* MySQL.

        Even in the open source world, sometimes these decisions are a
        • Yes I did. SQLite has an even less restrictive license than postgresql. SQLite has no advertising clause. postgresql does.

          but i was simply responding to OP's chest thumping about how php "ditched" mysql because the license was so evil. and his smug "but we all know the REAL reason they switched, wink wink nudge nudge" comment.

          to OP, PHP moving to SQLite can't possibly be due to technical reasons -- it's due to ideological ones. so he's using it to justify his ideological switch to postgresql.

          as you pointed
          • by Just Some Guy ( 3352 ) <kirk+slashdot@strauser.com> on Thursday October 06, 2005 @11:38AM (#13730731) Homepage Journal
            SQLite has no advertising clause. postgresql does.

            I call your bluff. Here's the entire, unedited PostgreSQL license (source their website [postgresql.org]):

            PostgreSQL Database Management System (formerly known as Postgres, then as Postgres95)

            Portions Copyright (c) 1996-2005, The PostgreSQL Global Development Group

            Portions Copyright (c) 1994, The Regents of the University of California

            Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.

            IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

            THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

            Where's this advertising clause you speak of? Or did you hear "BSD license" and drag out a decade-old complaint that's long since been addressed? That's as bad as people complaining that MySQL doesn't support transactions, except that's true under certain circumstances whereas your criticism is completely unfounded.

  • 3 words... (Score:3, Insightful)

    by ninja_assault_kitten ( 883141 ) on Wednesday October 05, 2005 @08:41PM (#13726451)
    FULL OUTER JOIN
  • by Anonymous Coward
    Try creating or dropping an index on a large mysql table sometime (a common requirement). It will lock the table, copy all rows to a temporary table, recreate the original and copy them back.

    Even with relatively I/O beefy machines this means hours of production outage for tables with just millions of rows. A nightmare for any critical application.

    I've used MySQL for a year after Sybase, Oracle and SQL Server and would definitely agree that optimisation for anything but the most trivial queries generally s
  • The article profiles mission critical database software and discusses how well MySQL 5.0 fits the profile.

    I love MySQL - I've built my technical solutions around it for the past 5 years. However, until it's released for PRODUCTION use you can't call it "MISSION-CRITICAL".

    See http://dev.mysql.com/doc/mysql/en/choosing-version .html [mysql.com]


  • As usual, little of MySQL, as well as most other DBMSs, properly supports the relational model, according to Chris Date and others.

    It's nice to see MySQL getting stuff other DBMSs have had for years, like triggers and stored procedures, but for uses other than a replacement for file managers like Access and for DB-backed Web sites, go with PostgreSQL or Firebird or others with a little more power. Messing with database designs for mission-critical needs can land you in hot water fast with a product that doe
  • I think not (Score:4, Interesting)

    by vandan ( 151516 ) on Thursday October 06, 2005 @02:17AM (#13727846) Homepage
    MySQL are finally bringing stored procedures, views and triggers to their database server. Cool. I've been using MySQL for 6 years now, and I've very happy with the version I'm currently running ( 4.0.25 ).

    Having said that, anyone who says that MySQL are ready for 'prime time' are clearly deluded. You can have a database server with unbelievable speed, features, security and stability, and it doesn't mean a damned thing if you don't have client libraries ready.

    MySQL's client libraries are appauling. MyODBC, their ODBC connector, has been one big fuckup after another for the past 2 years. It's a minefield of:
    don't use this with that, and certainly don't download this one - we don't know what we were smoking when we released that

    Rock up to a MySQL mailing list, and the most common questions is about client libraries and the 'new' authentication system. The problem is that this authentication system is no longer new - it's old. It's many years old. Why haven't the client libraries been updated? The error message suggests that users "upgrade their client libraries", but upgrade to WHAT? Perhaps the error should read:
    You are using client libraries from last century. Perhaps you should match them with a server product from last century. Please don't use our newer server products until we have managed to release some client libraries to match

    I for one would prefer to see some actual client-side support for 4.1.x before people start declaring 5.0.x 'ready for prime time'. You can't use 5.0.x features with 4.0.x libraries.

    Has anyone checked out the GUI admin tools? These are also a long chain of distasters. MySQL seem to spend 18 months getting a GUI looking promising, if a little buggy, and then abandon the project. What happened to mysqlcc? What's happening with Administrator / Query Browser? Critical bugs reported months ago have gone completely untouched. For example, you can't edit tables with a primary key, because Administrator doesn't recognise the primary key, and strips it out of the table when you click 'apply'. Cool! Sounds ready for prime time to me! When will MySQL add support for primary keys to their products?

    Yes, I'm stirring here. But none of the above is in the slightest untrue. MySQL have lost their focus. With so much attention being paid to a 5.0.x release, everything else is suffering badly.
    • Re:I think not (Score:3, Insightful)

      Ahh and there still is the issue, that the MySQL devs refused to add transactions for years ditto for subselects because you do not need em :-) thing of the past, but that attitude alone was enough not to touch this system.
    • MySQL's client libraries are appauling. MyODBC, their ODBC connector, has been one big fuckup after another for the past 2 years.

      The horrible JDBC support with MySQL was the final straw for me, and what pushed me to PostgreSQL for all of my new database backed applications. The PostgreSQL JDBC drivers work really well, especially in the presence of Unicode text data. I've heard that more recent MySQL releases have better handling for this, but it's too late for me.

      Has anyone checked out the GUI admin

  • by g_lightyear ( 695241 ) on Thursday October 06, 2005 @04:34AM (#13728148) Homepage
    26 million rows = broken MySQL system.

    It just doesn't cope. It's fine if you've got no data to speak of; it's great when the sizes of what it's working with is small.

    IT TAKES 24 HOURS OF UNWRITABILITY TO MAKE A DAMN BACKUP, FOLKS.

    MySQL was the biggest mistake I ever made. I had the option of choosing Postgres on an older version of the software, or MySQL on the latest, and I've been regretting it ever since.

    The fact is this: I've used it for stuff when the amounts of data are small, and it's brilliant - but if you need to keep a lot of information, you're screwed - run, don't walk, to the nearest vendor and get something decent, because MySQL just can't cut it. It's missing too much in too many places.

    Now, I haven't used 5. I'll have to, because 4 sucks, and 5 can't be worse - I can only hope that 5 gets rid of the worst of my problems; it will probably stay slow and unresponsive, and continue to take an hour to generate a report, but I can at least pray that perhaps, if I'm lucky, I can get a backup out of it without taking down the system.

    No matter how good you think it is; no matter how fast you think it might be... don't pretend it scales up to the kinds of loads the commercial vendors can handle. There's a reason the big boys cost big money, and despite popular opinion, it's not all just leeching money out of your pocket. MySQL doesn't do big well.
  • At first I thought that scox was just spinning, as scox so often does. I figured scox was calling basic mysql being supported on scox's OS a business relationship.

    Then I see the announcement of the business partnership proudly displayed on mysql ab's website.

    Disgraceful.

You knew the job was dangerous when you took it, Fred. -- Superchicken

Working...