Slashdot Mirror


MySQL 5 Production in November

thatoneguyfromphoeni writes "CIO.com is reporting that MySQL AB is eyeing Nov. for the production release of MySQL 5. 'The company is calling version 5 its most significant upgrade yet. It adds a handful of features considered important for enterprises that have long been available from market leaders Oracle Corp., IBM Corp. and Microsoft Corp. Chief among them are triggers, views and stored procedures.'"

18 of 286 comments (clear)

  1. MySQL has finally caught up by Michalson · · Score: 5, Insightful

    MySQL has finally caught up to the state of the enterprise relational database industry...as it was in 1999. Points for effort, but everyone else is still ahead with core features like integrity, leaving them free to build on new and better features. Bundling with PHP will only get you so far.

  2. Re:MySQL has been, and always will be sub standard by TinyManCan · · Score: 4, Insightful

    Not everyone needs the same set of features in their database product. Some people want something that is very lightweight and fast.

    Other people want bulletproof "unbreakable" databases with thousands of features. Some people want something right in the middle.

    Having a variety of solid choices is not a bad thing. You should't be affraid of a little competition, as it is good for the entire market.

  3. Still Not an Enterprise Solution by WhoDey · · Score: 3, Insightful

    As much as I love (and use) mySQL, it's still not, nor will it likely ever be (never say never) an enterprise solution. Prove to me that mySQL is robust enough to be the backend service for a major bank's mortgage application, for example. It's simply not. As a previous poster already mentioned, mySQL has finally caught up to the base set of features that all major DBMS's had years ago. Now, after that rant, I will say this. mySQL is great at what it's designed to do. I use mySQL as the backend for personal websites and applications. It's (relatively) lightweight, simple, easy to administer, and, best of all, free as in beer (not withstanding products purchased from mySQL AB). So before you get all huffy about what I said in the first paragraph, just remember that mySQL is great at what it's made for, it's just not made to be an enterprise solution.

    1. Re:Still Not an Enterprise Solution by gtoomey · · Score: 4, Insightful
      You can't compare Oracle (a Boeing 747) to MySQL (a Cessna). But there are a lot more Cesnas sold than Boeings.

      There's a very big niche for smaller DBMSs. Plus MySQL tends to be fast and the feature set is growing.

    2. Re:Still Not an Enterprise Solution by Circuit+Breaker · · Score: 2, Insightful

      Ahhmm.

      Most likely, your bank is running its mortgage application on a seven year old database. Many of these apps are actually running on much older hardware/software combinations. I don't think mortgages have changed that much in the last 10 years or so.

      Newer != Better, New Features != Required Features.

  4. Playing catchup... by slashname3 · · Score: 2, Insightful

    So they finally add features that postgresql has. And don't forget the more difficult to use licensing they have imposed compared to postgresql.

    1. Re:Playing catchup... by bani · · Score: 2, Insightful

      Yeah, because all the world is a nail and postgresql is the hammer.

      It's always easier when you view the entire universe in black and white.

    2. Re:Playing catchup... by jrumney · · Score: 2, Insightful

      It's not the GPL that is the problem, it is MySQL's interpretation of it (distributing your program on the same media as MySQL is listed in their FAQ as a reason why you would need a commercial license), and the fact that they GPL the client APIs.

  5. No, it hasn't by Anonymous Coward · · Score: 2, Insightful
    1. MySQL still requires you to choose a particular (non-default!!) table type in order to have ACID
    2. MySQL still has non-standard syntax and semantics
    3. MySQL still has a non-standard and broken user/permission system
    4. MySQL Still doesn't have nested queries

    I was using all of these in PostgreSQL in 1999.

  6. sure, if hits are uniformly distributed by jbellis · · Score: 2, Insightful

    they never are, though.

    it's probably more like "8 hits per second for 8 hours; 1 hps for 16."

    which is still a joke for static content, but for dynamic, it's respectable.

    1. Re:sure, if hits are uniformly distributed by Trigun · · Score: 1, Insightful

      Oh shut the hell up. Seriously. Why not ask intelligent questions, instead of just blurting out your modern hardware bullshit? Here, I'll loan you a few.

      Q) Are you currently using stored procedures to serve your web content?
      Q) If so, under what circumstance?
      Q) what was the perfomance increase from using stored procedures?
      Q) Are you using transaction?
      Q) How many database queries are there per page?
      Q) Do the database lookups span multiple tables?
      Q) If so, how many? Two? Three? More?
      Q) Are you using persistent database connections, or are you creating and destroying them per page view?
      Q) What is the size of your database?
      Q) What is your hardware platform? If using Raid, which level, why did you choose it, and what is your cluster size?
      Q) How many instances of apache (I assume that's what you're using) do you have running?

      There you go.

  7. Re:MySQL has been, and always will be sub standard by A+beautiful+mind · · Score: 2, Insightful

    So maybe people will clean up Oracle's _nightmarish_ security track record, because unfixed critical bugs for years is not an uncommon sight in Oracle land. I'd take security over features anytime.

    Don't get me wrong, i know you're just a troll, although MySQL was/is lacking in some ways, as i'm perfectly aware of that, but nothing compares to not giving a sh*t about security especially in case of an enterprise level software costing so much in cash and resources.

    These Oracle issues are well known as a lot of security experts prove it day by day.

    --
    It takes a man to suffer ignorance and smile
    Be yourself no matter what they say
  8. Re:Data Dependencies & Reliability by MOBE2001 · · Score: 2, Insightful

    Don't be silly. PostgreSQL has had this feature for ages (atleast since 7.x days) implemented via NOTIFY, which interested listeners can register to be notified of.

    Thank you. But that is not what I meant. There should be a software mechanism that automatically identifies dependencies and resolves them. Leaving it to the programmer does not solve the problem because programmers come and go and may not be aware of old dependencies. The problem is especially annoying in legacy systems. Modifications made to a complex system can have unforeseen consequences if programmers are not aware of the dependencies.

  9. Still no "device"/single file support by Twillerror · · Score: 3, Insightful

    One of the biggest advantages of enterprise level dbs is that they are not file based. That is there is one or more files that can store many table/indexes/etc.

    Postgres recently added tablespaces, which allow you to specify a sub folder for these files. This is better then before, but not nearly where it needs to be.

    There are advantages to having single files versus a larger file, but most are administrative in nature. It can also lessen the effect of corruption. A sinlge table might fail and would not effect others. If a big database file corrupts it can damage a lot of data.

    Having a single files allows quite a few things.

    First it greatly reduces File system level fragmentation. The file grows once and the sectors are right next to each other. When you have 10+ gigs of data this is a real concern.

    Second it create a unified caching mechanism. The big file is broken into pages, generally 8k, which in turn store data rows. The data is not only user data, but indexes, system information. Other pages are used to store stats about other pages, and have header information about the file itself. Why is this important to caching, because you simply have a cache table, everytime a page is loaded it gets cached. Writing to page happens in memory and then written to disk. Enterprise dbs have huge caches. This is why 64 bit is so important for dbs, so we can have larger then 4 gig caches.

    Third is backing up. Some might say the file backup is easier, I beg to differ. Especailly when it gets big. When you go to backup you backup each page in the file. You mark each one as being backedup. At the end of the backup you backup the write ahead log. This allows you to restore to exactly the time the backup finished. Lastly, a diff backup simple looks at each page that has changed since the backup and backs only those pages up. Diffs can be very fast and faster to restore then a write ahead log.

    Also, single files on different drives arrays to increase performance. This is also capable with tablespaces. The good part is that the database knows only the file id that tables go on, and then file id corresponds to a file name on any path. With the right tool you can move the files around easily.

    Replication is also easier because writes are to a file id and page id. The replica database can have files place on any drive at any map point as long as the data.

    Both mysql and postgres got a way to go, but they are very nice products and one day can easily compete with the big boys. Although it will be a while before they are able to run high end clustered box with shared storage and super high speed interconnects, but if you need that kind of power, you've probably got the money...actually you absolutly do if you can afford the hardware.

  10. The negative comments have gone from... by puppetman · · Score: 4, Insightful

    "MySQL doesn't have triggers or stored procedures and views" to "Even if it does have triggers, stored procedures and views, it's still not a real database like Postgres/Oracle/SQLServer".

    We have two websites, Boats.com and Yachtworld.com - Boats has an Oracle backend databsae, and YW has MySQL using the InnoDB engine.

    The uptime is about the same for the two. We've had some issues on the Yachtworld database box due to 3ware drivers in Linux - they were corrupting pages in the database. Guess what? Innodb recovered without any lost data. Twice. This was a driver/hardware/linux issue, not a MySQL issue. We now appear to have a stable set of drivers, and I expect the MySQL database to hit 100% uptime pretty much every month.

    Yachtworld gets several million distict page views per day, whereas Boats.com gets half a million.

    Our MySQL database runs on a dual-opteron server, with 8 gig of RAM, with 6 gig of it allocated to the innodb block buffer pool (it caches row and index data so you don't have to go to disk).

    Try doing that in Oracle 10g on Linux. The SGA (Shared Global Area) can't get larger than 1.7 gig unless you,

    1) Use memory as a temporary file system so that Oracle can cache a bit more, and you also get the benefit of dicking around for several days, trying to configure your machine to try to take advantage of it (if it even can - we were never successful).
    2) Remap all the shared libraries so that they load in a lower memory address, to squeeze another few hundred meg of memory.

    Postgres (last I checked) preferred to let the OS do the data-caching. Thanks, but no thanks. And no 64-bit version (though I've read a few people have managed to compile one, I wouldn't trust it unless Postgres gave it the thumbs up).

    MySQL with InnoDB is straighforward (it's use of tablespaces, replication, tuning, and even compiling from source - someone with mediocre Linux skills like myself can do it without issue every time).

    MySQL with InnoDB is very fast, very reliable, and has awesome support via the MySQL mailing lists.

    MySQL is very well documented, with lots of great third party books that don't cost an arm and a leg (unlike an Oracle library).

    MySQL does not have stored procedures, triggers, and views in the current production version.

    Here's what I think of that:

    1) Triggers are hidden application logic that are very hard to debug, and are easily overlooked or forgotten by developers. Business logic (other than defensive logic like unique indexes, primary keys, foreign keys, not-null columns) does not belong in the database. They belong in the middle tier. They also make it much more difficult to move to another database.

    2) Stored procedures are like PERL - it's very easy to make a mess unless you are very careful. They are also hidden logic, and very difficult to debug. And again, keep that logic out of the database. They also make it much more difficult to move to another database.

    3) Views are a nice feature, but most often used to support business and reporting. I don't like managers connecting to the database to run queries (SELECT * FROM very_large_table_1, very_large_table_2; and suddenly you have cartesian join that results in tens of millions of rows coming back, bogging everything down). To do reports, views aren't necessary.

    If you think MySQL is not a "real" database, it is, and has been since 4.0. As an Oracle (and now MySQL DBA), I can honestly say that I can't wait to dump Oracle and get the Boats.com website over to MySQL.

    And for the few people who made comments like, "Do you really want your bank running on MySQL?": many banks run on old, legacy hardware and systems. Transactions are written out in many places (with geographic diversity) to ensure that a hardware or software crash is recoverable. There is no reason why you couldn't put MySQL in a situation like that, so long as the same precautions are taken.

    1. Re:The negative comments have gone from... by kpharmer · · Score: 4, Insightful

      Regarding memory:
      - I haven't tuned oracle memory in forever, but it sounds like you're trying to use 8 gbytes of memory
      on a 32-bit cpu. In that case oracle and db2 are both limited to 1-3.2 gbytes of memory depending
      on the os. There are ways of getting around that limitation but they are os-specific. On 64-bit
      CPUs, everything is very simple.
      - btw, putting most of your memory into a single buffer pool is seldom the best way to manage your
      memory: ideally you would create a few sets of buffer pools for different types of tables. That's
      the best way to increase your cache hits: indexes and all small tables pretty much just live in
      memory at that point.

      Regarding Innodb:
      - very fast? compared to what? writing to myisam? well, sure, but that's about it.
      - keep in mind that at a few million rows and several million queries, you shouldn't have
      a problem with this data in any database. This is small. Unless of course your queries
      are complex, are frequently reading 50,000 rows then aggregating that data into trends,
      counts, etc. Of course, if you are - then oracle's parallel query and partitioning will
      deliver great performance - possibly *dozens* of times faster than what mysql can do.

      Triggers:
      - as long as you keep it simple they are wonderful and are still easy to port. You can with
      triggers:
      - auto-populate some columns that the application doesn't require, but might be useful in
      partitioning the data (assuming your database supports partitioning).
      - populate denormalized tables strictly for reporting or searching
      - populate history tables with changes to all data in various important tables
      - capture changes in order to copy data to another database
      - etc
      - yes, you could do many of these things from within the application. but it'll be harder. Why
      make life hard?
      - and sometimes you *can't* do these things from within the app - it's closed source, but luckily
      for you it's on a database that supports triggers.

      Stored Procedures
      - again, keep it simple and they are very useful and not at all difficult to port between databases
      - when validation is performed here it allows you to *easily* enable multiple applications
      to write to the database. I'm working on a project right now in which I've got to allow another
      department to create a portal to one of our databases. The folks in this department can barely
      write SQL, and I'm not interested in them training on our dime. We're giving them stored
      procedures that they won't be able to screw up. Much, much safer this way!
      - also gives your dba the ability to change the physical database (adjust for changes in business,
      performance, security, etc) without having to change all the applications: the change can be
      encapsulated.
      - and sometimes you *can't* do these things from within the app - it's closed source, but luckily
      for you it's on a database that supports triggers.

      Views
      - again, this gives you a ton of flexibility
      - for example: in most of my databases I don't give de

  11. Re:Some technical complaints though by arjenlentz · · Score: 2, Insightful

    Why would a non-expert on a topic write an whitepaper about it? Makes no sense... Sorry for being so picky, but I'm just a bit fed up with that kind of nonsense. Regardless of the intent, the result is malicious as such FUD on the net hangs around and is copied and quoted. Wouldn't you rather compete by focusing purely on the positive points that your own offering provides? Anyway, your image is yours to build or undermine. It's a choice. Space from deleted rows and old versions are automatically reused, no explicit maintenance is required for this. I don't know what that person was referring to; if he/she has a valid point, I'm sure they can be more specific about the matter.

  12. Re:Some technical complaints though by Jules+Bean · · Score: 3, Insightful
    I do have one claim in there at the moment that I would like your feedback on. Those who sent me a correction early this morning mentioned that InnoDB has a bloat problem where it has trouble removing dead tuples. I have not felt like attempting to test this

    You expect people to take your analyses seriously, but you don't feel like attempting to test...?. I suggest you leave serious comparison documentation to people who do feel like testing stuff. No offence intended.

    --
    -- Any sufficiently advanced technology is indistinguishable from a perl script.