Stories
Slash Boxes
Comments

News for nerds, stuff that matters

MySQL 4 Declared Production-Ready

Posted by michael on Tue Mar 18, 2003 02:18 PM
from the hardly-any-data-loss dept.
Simprini writes "After absolute ages of testing MySQL 4.0.x in various versions of BETA through GAMMA it looks like MySQL AB finally released MySQL 4.0.12 as ready for prime-time production use. I know my company has been waiting for a long time for this because our customers absolutely refused to use beta releases of this product. Query caching here we come."
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • Uh oh (Score:5, Funny)

    by grub (11606) <slashdot@grub.net> on Tuesday March 18 2003, @02:20PM (#5538492)
    (http://www.grub.net/blog/index.html | Last Journal: Wednesday June 27, @08:48AM)

    MySQL 4.0.x in various versions of BETA through GAMMA

    Uh oh.. I flat out refuse to use code that isn't ALPHA... well at least as an OS on my Windows machine.
  • Excellent... (Score:2)

    by Gortbusters.org (637314) on Tuesday March 18 2003, @02:20PM (#5538499)
    (http://www.gortbusters.org/ | Last Journal: Friday June 11 2004, @06:34AM)
    I can't wait to test it out... with all the hype it might even give my Postgres a run for its money! It's so nice to see competitive databases freely available. Hand someone a PHP/MySQL book (there's tons) and let get cookin.

    Now to start some benchmarking...
  • by tweder (22759) <stwede&gmail,com> on Tuesday March 18 2003, @02:21PM (#5538504)
    (http://tweder.com/)
    Oh that's reassuring!
  • Mac OSX? (Score:1)

    by Anonymous Coward on Tuesday March 18 2003, @02:22PM (#5538509)
    Whatever happened to them releasing the Command Center (?) software for OSX in February ... 4.0 ... 4.0 ... pfft.
  • Uh, postgres? (Score:4, Interesting)

    by Anonymous Coward on Tuesday March 18 2003, @02:22PM (#5538514)
    Does MySQL still do table-level locks and no foreign keys? If so, I'll stick to using a real database.

  • Just now? (Score:2, Informative)

    by Geekenstein (199041) on Tuesday March 18 2003, @02:24PM (#5538532)
    According to the MySQL site (manual) Gamma status was granted in December with version 4.0.6.
  • Excellent. (Score:2, Funny)

    by Anonymous Coward on Tuesday March 18 2003, @02:24PM (#5538533)
    My MySQL 4 worm is also ready for your production environments. Get ready, sucka!
  • Solaris 2.5.1 (Score:2)

    by Rasta Prefect (250915) on Tuesday March 18 2003, @02:24PM (#5538535)

    Now if I could just get MySQL 4.Anything to compile and run correctly on Solaris 2.5.1..
    Most attempts thus far have ended in failure of libraries to link correctly or binaries that segfault...
  • Its Stable (Score:5, Informative)

    by krow (129804) <brian AT tangent DOT org> on Tuesday March 18 2003, @02:25PM (#5538539)
    (http://krow.net/ | Last Journal: Friday March 28 2003, @01:56PM)
    We have been using 4.x for Slashdot for some time now. Its quite stable and the new query cache seems to be working for around 13% of our queries, which has been a great boon for us.
    • Re:Its Stable by acostin (Score:1) Tuesday March 18 2003, @03:02PM
    • Re:Its Stable by ChristTrekker (Score:1) Tuesday March 18 2003, @03:47PM
    • Re:Its Stable by CableModemSniper (Score:3) Tuesday March 18 2003, @03:51PM
  • Simply powerful or powerfully simple? (Score:5, Informative)

    by Gortbusters.org (637314) on Tuesday March 18 2003, @02:25PM (#5538548)
    (http://www.gortbusters.org/ | Last Journal: Friday June 11 2004, @06:34AM)
    Things like embedded MySQL [mysql.com] make MySQL a bag of tricks to use in many environments.

    What other features [mysql.com] might there be?
    • Version 4.0 further increases the speed of MySQL Server in a number of areas, such as bulk INSERTs, searching on packed indexes, creation of FULLTEXT indexes, as well as COUNT(DISTINCT).
    • The InnoDB storage engine is now offered as a feature of the standard MySQL server, including full support for transactions and row-level locking.
    • Our German, Austrian, and Swiss users will note that we have a new character set, latin1_de, which corrects the German sorting order, placing German umlauts in the same order as German telephone books.
    • Features to simplify migration from other database systems to MySQL Server include TRUNCATE TABLE (like in Oracle) and IDENTITY as a synonym for automatically incremented keys (like in Sybase). Many users will also be happy to learn that MySQL Server now supports the UNION statement, a long-awaited standard SQL feature.
    • In the process of building features for new users, we have not forgotten requests by the community of loyal users. We have multi-table DELETE and UPDATE statements. By adding support for symbolic linking to MyISAM on the table level (and not just the database level as before), as well as by enabling symlink handling by default on Windows, we hope to show that we take enhancement requests seriously. Functions like SQL_CALC_FOUND_ROWS and FOUND_ROWS() make it possible to know how many rows a query would have returned without a LIMIT clause.
    • by micromoog (206608) on Tuesday March 18 2003, @02:58PM (#5538788)
      In the process of building features for new users, we have not forgotten requests by the community of loyal users.

      What about integrity constraints, foreign keys, interval datatypes, full outer joins, subqueries, set operations, VIEWS for god's sake, and triggers? Too hard?

      For cryin' out loud, half of these missing features put the "relational" in "relational database"!

      [ Parent ]
      • Re:Simply powerful or powerfully simple? by Anonymous Coward (Score:1) Tuesday March 18 2003, @03:14PM
        • Views? They are for people who don't know how to write queries.
          Triggers? They are for people who like mysterious things to happen to their data.
          Foreign Keys? They are for people who don't like to delete their data.
          Interval Datatypes? They are for people who are iffy.
          Full Outer Joins? They are for people who like lots of data.
          Subqueries? They are for people who can't program simple loops.
          Set operations? They are for people who can't relate.


          shall I add???

          Programming Languages They are for people who can't read machine code in hex.

          (I realize you're kidding, but there are some people who might take you seriously)
          [ Parent ]
        • Re:Simply powerful or powerfully simple? by Bodrius (Score:2) Tuesday March 18 2003, @07:49PM
      • Re:Simply powerful or powerfully simple? by DataPath (Score:2) Tuesday March 18 2003, @03:30PM
      • Re:Simply powerful or powerfully simple? by Ragica (Score:2) Tuesday March 18 2003, @03:33PM
      • What about integrity constraints, foreign keys, interval datatypes, full outer joins, subqueries, set operations, VIEWS for god's sake, and triggers? Too hard?

        For cryin' out loud, half of these missing features put the "relational" in "relational database"!


        First of all, kudos to the MySQL team for atleast getting as far as they have. Just because I'm not fond of thier product, doesn't mean they don't deserve credit.

        I've been banging my head a little on this one too trying to figure out why so many people are pushing MySQL and not something stable and complete like PostgreSQL? After all, PostgreSQL has triggers, stored-procedures, functions, referential integrity, and tons of other features to make your life easier. You may not need all of these features now, but can you honestly say your app won't expand and require advanced features?

        Is it the MySQL marketing engine? Does PostgreSQL sound intimidating? Are there actually technical advantages that MySQL have over PostgreSQL? If so, what are they?

        The most common argument I've heard in defense of MySQLs lack of basic features is: "It's good enough for 90% of the problems out there." However, everytime they implement a basic feature that every other RDBMS has had for decades (like UNION), people respond as if MySQL is getting close to be taken seriously.

        Secondly, In my experience, I've found that 90% of the applications I've worked on end up using those advanced features sooner or later. Those features usually save a tremendous amount of time I would have otherwise had to spend writing code to make my database jump through hoops. In addition to saving time, there a lot of features which simply allow me to make my applications more useful or intuitive to the end user, which is the whole point.

        Am I missing something here, or is the Emperor not wearing any clothes?

        [ Parent ]
      • Re:Simply powerful or powerfully simple? by Mage Powers (Score:1) Tuesday March 18 2003, @04:44PM
        • by micromoog (206608) on Tuesday March 18 2003, @04:51PM (#5539741)
          select *
          from people
          where person_id in (select person_id from slashdot_users)

          This one can be rewritten to use a join instead (MySQL's excuse for a workaround). However, there's another concept of "correlated subquery" (google for it) that cannot be rewritten in SQL, and instead requires some degree of procedural manipulation to simulate.

          [ Parent ]
      • 1 reply beneath your current threshold.
    • Re:Simply powerful or powerfully simple? by flink (Score:1) Tuesday March 18 2003, @06:13PM
    • 2 replies beneath your current threshold.
  • MySQL Query (Score:2, Funny)

    Select * from "http://www.mysql.com/downloads/" where "version" = "mysql-4.0.12"
  • Is it worth the switch? (Score:3, Informative)

    by m0i (192134) on Tuesday March 18 2003, @02:28PM (#5538572)
    (http://www.zone-h.org/defacements/onhold)
    According to the crash-me [mysql.com] comparison page, there's not much differences with the previous stable release. Some current benchmarks would probably be more significant, performance-wise.
  • Slash (Score:3, Interesting)

    by ericdano (113424) on Tuesday March 18 2003, @02:28PM (#5538574)
    (http://www.jazz-sax.com/)
    The big question is: When Slashdot is going to start using it?

    Having had experience with Oracle, MySQL is still lacking a lot of the plush features that Oracle has. But, having run it for about 3+ years on my own slash type sites, the thing is ROCK solid. The feature set in MySQL increases with every version.

    Now, look at the costs. Oracle - an Arm, leg, and your children. MySQL - Free. Gee, that is a no brainer.....

    • Re:Slash by tuffy (Score:3) Tuesday March 18 2003, @02:33PM
    • 4 replies beneath your current threshold.
  • by zymano (581466) on Tuesday March 18 2003, @02:37PM (#5538643)
    soloris and linux average 6-8 megs?
  • by Anonymous Coward on Tuesday March 18 2003, @02:38PM (#5538649)
    Error : no rows returned.
  • VIEWS! I said VIEWS, son! (Score:4, Insightful)

    by jot445 (637326) <jot@CHICAGO445pm.com minus city> on Tuesday March 18 2003, @02:38PM (#5538653)
    (Last Journal: Thursday March 06 2003, @03:28PM)
    We need views. While much of my work can be done in MySQL, until there are views I cannot switch completely from SQL Server 2K. Too many PHB's that need features like views [mysql.com] to be overcome. Must control fist-of-death! [dilbert.com]
    • Re:VIEWS! I said VIEWS, son! by arf_barf (Score:1) Tuesday March 18 2003, @03:05PM
    • Re:VIEWS! I said VIEWS, son! (Score:4, Informative)

      by HelbaSluice (634789) on Tuesday March 18 2003, @03:12PM (#5538907)
      But, as the MySQL developers say, nobody appears to want views badly enough to finance their development. That's how MySQL got as developed as it is now--enough corporate users needed specific new pieces of functionality that they could pay MySQL AB to build them. It's one of the best open-source business models I've ever seen.

      It's easy to complain. It's easy to preach. I'd rather see you pull out your (or your bosses') wallet.

      As for myself, while I'd love the convenience of views, I'm not constrained by legacy code and I don't mind the mild programming burden their absence puts on me.
      [ Parent ]
    • Re:VIEWS! I said VIEWS, son! by Troll_Kamikaze (Score:1) Tuesday March 18 2003, @04:24PM
    • Re:VIEWS! I said VIEWS, son! (Score:5, Informative)

      I'll probably get modded troll for this, but why do you need views? I am an oracle DBA who supports a large number of developers, and frankly I'm a bit skittish regarding views. (For the record I also support PostgreSQL and dabble in MySQL . . .).

      They can really only do two things: hide columns for security reasons and simplify queries by hiding part of that query.

      In general, the first applcation is usually better served by planning, data seperation, and implementing a good security policy. There are times when views are a legitimate solution to problems of this type, and a database is definately better for supporting them in such cases.

      The second case, however, is commonly misunderstood by developers, who think a view is some magic incarnation of a snapshot. I frequently see views based on views based upon views, frequently each of which is a poorly-optimized sql statement. The developers seem surprised that performance is abysmal in such cases. A view is a just a convenience, a means to "store" a query, and run that query each time the view is accessed, nothing more.

      Since I spend a fair bit of time trying to fix performance problems reusulting from the many myths and rumors about views and their ubiquitous misapplication, I'm not sure that I would consider their omission a bad thing -- it might teach developers better coding habits. . .

      [ Parent ]
  • Waiting for maturity (Score:5, Interesting)

    by acostin (229653) on Tuesday March 18 2003, @02:38PM (#5538655)
    (http://www.interaktonline.com/)
    We are also using MySQL for many web projects, but to create a complex CMS the future features in MySQL (that also exist in other current database systems - like postgreSQL and probably others) are needed.

    We have initially created Komplete - http://komplete.interakt.ro/ [interakt.ro] only for PostgreSQL, and our users attitude indicated us that MySQL should have been supported. So we are releasing now the Komplete Lite version (GPL), for MySQL - but it's a real pain to simulate subselects, real unions (emulated with temporary tables now), cascaded deletes and stored procedures.

    The speed is quite similar, but PostgreSQL is still much better for complex web applications.
    • Re:Waiting for maturity by Gortbusters.org (Score:3) Tuesday March 18 2003, @02:48PM
    • Re:Waiting for maturity by julesh (Score:1) Tuesday March 18 2003, @03:04PM
      • Re:Waiting for maturity by acostin (Score:1) Tuesday March 18 2003, @03:09PM
        • Re:Waiting for maturity (Score:5, Insightful)

          by Osty (16825) on Tuesday March 18 2003, @03:25PM (#5539027)
          (http://www.daishar.com/blog)

          And like 4 years ago I was all for MySQL - "Why the hell do we need stored procedures and triggers? They only slow the database down". This is true, but also this make the software actually reach the client in time by helping you avoid coding extra tons of code for data storage tasks...

          Of course, if properly implemented, stored procedures don't slow down the database at all. In fact, stored procedures could easily increase your performance. Proper implementation should include compiling the sql code into something that's more efficient internally for the server. Also, you'll no longer be sending free-form query text to the server, so you're both safer (you can be more strict with what you allow in your strings) and faster (fewer trips to the server and less data sent to the server each time). Not only that, but sprocs let you keep your SQL code separate from your client code, and can allow you to make changes to your business logic without having to touch your client code at all. In short, sprocs are much more useful than just being used for triggers, but unfortunately many MySQLers don't realize what they're missing.

          [ Parent ]
      • Re:Waiting for maturity by rifter (Score:1) Wednesday March 19 2003, @11:08AM
    • Waiting for PHP users to wisen up by sporkboy (Score:2) Tuesday March 18 2003, @03:23PM
  • Woho! (Score:5, Interesting)

    by Dri (16940) <<ot.citenerhp> <ta> <ird>> on Tuesday March 18 2003, @02:41PM (#5538672)
    (http://phrenetic.to/)
    I work at at the tech development dept. of a major car company and this is great news. We are finally able to throw MySQL onto production servers and give Oracle the boot for small RAD webapps.

    What I've heard from MySQL officials in person is that MySQL 5.0 is set to be released late Q4 this year. Then stored procedures, sub selects (4.1) and constraints should be ready for primetime, then we talk real heavy enterprise applications. Hope they keep the schedule! =)

    Well, Monty and the rest, Good Job! Keep it up!
  • 3.2x to 4.0 (Score:1)

    by soapvox (573037) on Tuesday March 18 2003, @02:43PM (#5538690)
    This is great that it is ready for production use, are there any sitess out there that go over the pitfalls and things to look out for with upgrading from 3 to 4?
  • users needing super high-performance and to different types of users (support for embedded systems). I didn't seem to notice any features for common web site data storage.

    However in the upcoming 4.x releases there were quite a few cool features for the average joe, such as ability to change mysqld options without restarting the server. There was another proposed feature that was cryptic to me: it looked like it would provide support for database redundancy. Is this correct?

  • Triggers? (Score:4, Interesting)

    Foreign keys -- Pass
    Replication -- Pass
    Triggers -- FAIL

    SO close.....

    • Re:Triggers? by Gortbusters.org (Score:2) Tuesday March 18 2003, @02:57PM
      • Re:Triggers? (Score:4, Informative)

        Yeah, but postgres doesn't have replication to speak of. We use postgres, but replication is a big missing element that we are looking to fill.

        So whichever happens first -- postgres gets _good_ replication, or mysql gets stored procedures/triggers -- will probably determine which one leaps ahead of the other in terms of wide-spread adoption, especially as companies migrate from costly proprietary systems.
        [ Parent ]
        • Re:Triggers? by Gortbusters.org (Score:2) Tuesday March 18 2003, @03:32PM
        • 1 reply beneath your current threshold.
    • Re:Triggers? (Score:5, Insightful)

      by nontrivial (222436) on Tuesday March 18 2003, @03:28PM (#5539056)
      (http://james.nontrivial.org/)
      Triggers are so overrated. I maintained a huge app that made extensive use of triggers, and after a few years I couldn't go near them without having them explode. Give me MySQL and Perl instead of triggers and stored procedures any day of the week.

      [ Parent ]
      • Re:Triggers? by nycjay (Score:1) Tuesday March 18 2003, @03:49PM
      • Re:Triggers? by The Bungi (Score:2) Tuesday March 18 2003, @04:59PM
      • Re:Triggers? by glwtta (Score:1) Tuesday March 18 2003, @05:59PM
      • Re:Triggers? (Score:5, Interesting)

        by frostman (302143) on Tuesday March 18 2003, @08:36PM (#5541140)
        (http://www.frostopolis.com/ | Last Journal: Wednesday November 09 2005, @02:35PM)

        The point of triggers is not to handle every possible database interaction, but to maintain your data integrity and business rules, as far as possible, at the database level.

        This is important so that people writing client/web applications don't accidentally weaken the data integrity. Database users (including applications) should never be able to accidentally or maliciously break things. Only the DBA gets to do that. ;-)

        If you find your triggers blowing up, it's usually because the database is poorly designed.

        If you started with something good and the boss is always changing the business rules on you and forcing you to use application code where you should use triggers, that's a tough situation. But if it's your policy, you would do well to learn a bit more about databases.

        BTW, Postgres can do triggers in Perl, for what it's worth.

        [ Parent ]
      • Re:Triggers? by adri (Score:1) Tuesday March 18 2003, @09:31PM
        • Re:Triggers? by topham (Score:2) Tuesday March 18 2003, @10:30PM
  • Multi-table deletes (Score:5, Interesting)

    IMO, the very best new feature of MySQL 4 is multi-table deletes. No more having to query/for each in/delete type constructs across many-to-many relationship tables.

    I've been using MySQL 4.0.5/PHP4 on RH8.0 without problems to date. Granted, only on a non-critical intranet for our small (70) office, but still, no problems.

  • File mirror on Freenet (Score:3, Informative)

    by Sanity (1431) on Tuesday March 18 2003, @03:02PM (#5538828)
    (http://locut.us/~ian/blog/ | Last Journal: Wednesday April 20 2005, @02:26PM)
    Just mirrored the file on Freenet [freenetproject.org], you can grab it here [127.0.0.1].
  • sub selects (Score:5, Interesting)

    by minus_273 (174041) <aaaaa@@@SPAM...yahoo...com> on Tuesday March 18 2003, @03:09PM (#5538881)
    (Last Journal: Wednesday May 16 2007, @12:43PM)
    any word on whether we have subselects yet. I couldnt see it in the change log. They are dearly missed..
  • by bear_phillips (165929) on Tuesday March 18 2003, @03:20PM (#5538969)
    (http://www.windmeadow.com/)
    What does 4.0 have that msyql-max 3.23 not have? I switched to mysql-max so I could use InnoDB.

  • Yes! (Score:5, Informative)

    by vandan (151516) on Tuesday March 18 2003, @03:36PM (#5539126)
    (http://entropy.homelinux.org/)
    As one of the testers of the 4.0.x line, I can say that MySQL AB should be proud of this release.
    I've seen some posts here about instability and data loss, but I assume this is from the Postgres 'but WE have the better database - everybody look over here' crowd. I've done some pretty stupid things to our MySQL box - like running Imagemagick's 'convert' on over 200MB of images and running the box out of virtual memory, which made the kernel start killing processes - starting with MySQL. When it came back up - no data loss at all. InnoDB recovers VERY well from this sort of thing.
    MySQL also handles multiple MS Access clients far better than MS SQL Server. We have over 10 tables now which basically can't be accessed if placed on SQL Server because of the way MS Access grabs record locks willy nilly. If I place the tables in MySQL as MyISAM tables, I get a little bit (3 or 4 months) use out of them. Then record locking issues start up again. So then I put them in MySQL's InnoDB tables with row-level locking, and I've never had any further issues with those tables. Quite impressive.
    And as well as being 100% stable for me, MySQL is so incredibly fast... When we convert standard Acccess queries to pass-through queries we get up to 15x speed increases. We actually use pass-through queries as substitues for views. Works nicely.
    The tech support it great. When I was having type-conversion issues with our pass-through queries I got responses from the developers on the same day - often in the same hour. And we haven't paid for any support - just downloaded the source.
    The lead-up to MySQL-4.0.x being stable has felt like the lead up to Mozilla-1.0; everyone using it felt it was ready, but the developers insisted on thoroughly testing everything to make sure they could stand by their decision to declare it stable.
    Congrats to the MySQL team. I will be compiling 4.0.12 when I get to work...
  • Why not PostgreSQL? (Score:2, Interesting)

    by ikioi (198093) on Tuesday March 18 2003, @03:39PM (#5539153)
    I don't mean to start a flame war here, but I have to ask... Why is MySQL so popular when PostgreSQL does more and is also open source and free like beer? Are there any real benefits to MySQL over PostgreSQL?
    • Re:Why not PostgreSQL? (Score:4, Insightful)

      by Eric Savage (28245) on Tuesday March 18 2003, @04:18PM (#5539504)
      (http://www.hotpop.com/)
      Three words: performance performance performance.

      A few projects NEED the advanced features PostgreSQL has. Most projects COULD USE the advanced features PostgreSQL has. If you have rockstar programmers who know the difference between saving keystrokes and saving cpu time, and know that shifting logic load to your DB server is generally a BAD thing, you're going to find that you can almost always do things faster (often much faster) in MySQL. Stability is a tough one as its so subjective its hard to compare. I know we use dozens of MySQL servers collectively running tens of thousands of queries per second 24/7 and we haven't had a major issue or lost any data in years.

      If performance is key and you aren't into using fancy stuff just because its fancy, you'll want MySQL. If you don't really care about performance, you might like the additional features PostgreSQL offers.
      [ Parent ]
    • Re:Why not PostgreSQL? by The_DOD_player (Score:1) Tuesday March 18 2003, @04:20PM
    • Re:Why not PostgreSQL? (Score:4, Interesting)

      by gid (5195) on Tuesday March 18 2003, @04:21PM (#5539532)
      (http://grecni.com/)
      I often wondered this myself, UNTIL I actually tried to sit down and use PostgreSQL. MySQL permissions and everything just made sense, it's all kept in very nice and neat tables and easy to understand by by looking at the tables without having to read any to little documention.

      While on the other hand, permissions for PostgreSQL are scattered everywhere. Half of it is config files for who gets allowed in and what type of authentication to what tables, triggers, etc, some are in special PostgreSQL tables that aren't immediately obvious even how to access if you wanted to edit them directly. It's all very confusing.

      PostgreSQL is nice, they just need to go that extra mile to make sure user permissions are easy to understand, etc. Do other little things here and there to make the learning curve is not quite as steep.

      Intuitive applications are the ones that succeed.
      [ Parent ]
    • Re:Why not PostgreSQL? by Anonymous Coward (Score:2) Tuesday March 18 2003, @04:25PM
    • Re:Why not PostgreSQL? by Troll_Kamikaze (Score:1) Tuesday March 18 2003, @04:31PM
      • 1 reply beneath your current threshold.
    • Re:Why not PostgreSQL? by Anonymous Coward (Score:1) Tuesday March 18 2003, @05:19PM
      • 1 reply beneath your current threshold.
    • Re:Why not PostgreSQL? by outsider007 (Score:2) Tuesday March 18 2003, @06:44PM
    • Re:Why not PostgreSQL? by hookcode (Score:1) Wednesday March 19 2003, @08:38AM
    • Re:Why not PostgreSQL? by ddriver (Score:1) Wednesday March 19 2003, @10:05AM
    • 3 replies beneath your current threshold.
  • Project Stats (Score:4, Informative)

    by Skevin (16048) on Tuesday March 18 2003, @04:12PM (#5539437)
    (Last Journal: Tuesday May 01 2007, @11:42PM)
    I've been using MySQL 4.x for a huge stock market analysis program I've been pounding out as my life's work, and unfortunately, I'm finding in some respects, it's slower than MS-SQL Server (same machine, dual boot):

    Number of listed NYSE symbols: ~3200
    Number of listed NASDAQ symbols: ~4000
    Number of total stock quotes from 1980 to today, each including open, close, high, low, and volume: 6.2 Million

    Time to fully index those 6.2M records on SQL Server: 0:42:33
    Time to fully index those 6.2M records on MySQL: 2:12:27

    And using Python...
    SQL Server time to pull all quotes within a given date range (no indices): 1min, 28sec.
    MySQL time to pull all quotes within a given date range (no indices): 7min, 18sec.

    Has SQL Server used implicit indices I am not aware of?
  • Increased FULLTEXT support (Score:2, Interesting)

    by aint (183045) on Tuesday March 18 2003, @04:25PM (#5539563)
    (http://www.boogle.com/)
    Many have been looking forward to the additional FULLTEXT features [mysql.com] in MySQL 4,
    including boolean searches. Also, additional FULLTEXT Configure [mysql.com] options.
    See also 4.1 [mysql.com]
  • MySQL 4 is good (Score:5, Interesting)

    by chrysalis (50680) on Tuesday March 18 2003, @04:29PM (#5539591)
    (http://00f.net/)
    I've been extensively using MySQL 4 for over one year on very loaded production systems.

    It has actually always been faster and more solid than the 3.23.x series.

    I only had some small issues with InnoDB (the same issues were in 3.23.x as well). But the InnoDB maintainer, Heiki Turri, is someone that really cares about bug reports. All reported bugs were immediately fixed.

    The query cache is efficient, and the fulltext indexing was greatly enhanced (if only it worked with InnoDB tables...) .

    I've not installed any 3.23.x version for a while, and I'll never go back.

    Probably a lot of system administrators will wait. They will read that MySQL AB blessed 4.x as production-ready, but they will wait, as if it was an 1.0 version that still needs some maturity.

    It's not. MySQL 4.x has already received a lot of testing, and it is already being used on large production sites. Just read the MySQL mailing-lists.

    Upgrading from MySQL 3.x is also easy. You only need to run a little script to upgrade the grant tables (and even if you don't, everything will work). No need to export/reimport the databases. So upgrading is straight forward.

  • by The Bean (23214) on Tuesday March 18 2003, @04:34PM (#5539634)
    (http://iboone.net/)
    I keep hearing how postgresql has "caught up" to mySQL plus has all kinds of wonderful features, yet my own testing shows postgresql to be a fair bit slower when you have about an equal mix of selects and updates with a few inserts thrown in here and there. For example, 82 seconds for postgresql, 35 for MyISAM and 49 for InnoDB (not MySQL 4 however) Yes, the postgresql had fsync turned off and the table vacuumed (full & analyze.)

    I'd love to use Postgresql, but with mysql adding all these features plus being so much faster, it's hard to move that way, as the fancy features are things I'd use but don't really need. (Previously foreign keys were a reason for me to switch)

    Or is there a way to make postgresql keep up to mysql so I can justify using it and right away get access to those cool things like views, triggers, functions, etc ?
  • read: especially as it concerns web sites, its hard to get users to upgrade from a good or engrained product...
  • Uh oh, the Boss (Score:1, Funny)

    by Anonymous Coward on Tuesday March 18 2003, @06:33PM (#5540478)
    I sure hope my boss doesn't hear about this. I told him we weren't using ANY pre-release software on our production boxes. ;-)
  • What the MySQLer's dont understand (Score:5, Insightful)

    by esconsult1 (203878) on Tuesday March 18 2003, @07:31PM (#5540803)
    (http://www.afrobattle.com/ | Last Journal: Monday April 22 2002, @12:06PM)
    The thing that makes Postgresql completely different from MySQL is that it is an *active* RDBMS. By active, I mean that you can set it up so if it gets certain kinds of data, it can operate on that data to create new records, delete records, update other tables etc.

    Postgresql has the *intellegence* built in. You can write all sorts of georgous functions to do stuff, especially if, like us, your shop uses several languages... PHP, Perl, Java, Python, C++, etc. Why replicate your data related logic in every client language?

    Transaction support and file/record locking are the least of your problems. If you do serious database stuff, at some point, you are *going* to want VIEWS, TRIGGERS, RULES, and STORED PROCEDURES (functions). Having this functionality in the database engine, instead of in your code makes a heck of a lot of difference when the time comes to scale.

    Coming from a MySQL backgroud in a multi-language shop, we clearly saw the limitations, and decided to switch the entire database platform over to Postgresql a year ago. We haven't looked back since.

    Also, I dont think the developers will be able to make MySQL into an *ACTIVE* database anytime soon, simply because of the current architecture of the system as it is now. They are going to need a heck of a lot of system tables and new code, to accomplish even the simplest stored procedure functionality.

    I can see VIEWS being a quick hack, but going beyond that with MySQL as it is, will be quite a stretch, and I don't believe they will finish those features until perhaps the end of next year, as it will require almost a complete rewrite of the base engine IMHO.

  • Question (Score:2, Interesting)

    by PyroX_Pro (579695) on Tuesday March 18 2003, @08:05PM (#5540964)
    (Last Journal: Friday December 27 2002, @01:49AM)
    When I design a view in MSSQL, I can copy and paste the query in my code and use it. That is exactly what I always do. MySQL supports joins correct, so it it just that you cannot save the view that makes so many get their panties in a bunch? Can't these people just write the query? If you need it stored bad enough, can't you just write a function to call your 'view' sql query?

    What?
    • Re:Question by Alien Being (Score:2) Wednesday March 19 2003, @12:14AM
    • Re:Question by spongman (Score:2) Wednesday March 19 2003, @02:47PM
    • Re:Question by PyroX_Pro (Score:1) Wednesday March 19 2003, @12:29AM
      • Re:Question by aok (Score:1) Wednesday March 19 2003, @01:28AM
    • 1 reply beneath your current threshold.
  • to possibly replace some Oracle databases.

    Any gurus (or detractors) want to list the downsides?

    - no subqueries yet. Ok. Not the end of the world
    - are multi-column primary keys still a performance dog?
    - how is stability? That's probably what you hear most about w/regards to MySQL
    - triggers and stored procs; back-end-logic==bad IMHO

    I just ordered Mastering MySQL 4 to speed the jump between Oracle and MySQL. Anyone used that book?

    I'd be really interested in hearing some frank and honest appraisals.
  • by verrol (43973) on Wednesday March 19 2003, @05:05AM (#5542907)
    (http://lorrev.org/ | Last Journal: Monday July 12 2004, @02:14PM)
    they are doing such a good job and being such good citizens to the OS community, I want to donate some bucks. Since I am only using MySQL for personal use and I don't need support, I don't can't affort that much, but I don't mind a $50 - $100 donation. I just sent them an email to add a donation link using PayPal or something, like Blender or some other projects. .v
  • by gykh (625487) on Wednesday March 19 2003, @08:06AM (#5543367)
    (Last Journal: Sunday September 07 2003, @05:25AM)
    You wanna know how I chose between the two?
    The name, that's how.
    MySQL just looks so much simpler to pronounce.

    And it sounds 'mine'
  • by camusatan (554328) on Wednesday March 19 2003, @12:36PM (#5545169)
    (http://uberbrady.blogspot.com/)
    This should be an interesting article - hey, new version of xyz is out, now it does feature blah. Great news.

    But instead, there's stupid recurring garbage with idiots on both sides trying to explain that one database is better than another. Here's what I think the objective truth is - the fact of the matter is whatever works for you is fine.

    If you like using stored procedures, triggers and constraints and think SQL compliance is important, then use Postgresql, and it will work fine for you. If you don't, and you like fast access to your data, use MySQL.

    There are use scenarios that one can construct which will make either database look completely ridiculous and terrible (look at some of the comments for some examples). But it doesn't matter, if you can code for MySQL and think in MySQL, it will work fine. If you code for Postgresql and think in Postgresql, it will work fine. I've used both, in heavy and light production environments, and they both have their uses. I've also found scenarios where I can't use either, and have to go to something else.

    To all those who say, "But...but...MySQL is just a fake SQL interface to the filesystem!" Well, fine. Where do you store your files, then? I presume, since a filesystem is such a terrible place to put your files, that it's not in a filesystem, eh?

    And to those who say, "but, I can SELECT out of MySQL eight hundred bajillion times faster than Postgresql!" Well, fine, but what happens if you try to concurrently insert something? How's your data integrity hold up if some errant SQL inserts data that doesn't refer properly to other tables?

    What I'm trying to say is that it's all relative, and trying to phrase things as, "This is the right thing to do, in all cases, for all scenarios" is narrow-minded and simplistic. Use what works for you - and note that a lot of this depends on how you think when you are writing your code. So two different programmers working on the same problem might solve the problem using different databases - and both be right.

  • Codd's 12 rules [databaseanswers.com] explain what makes an ideal RDBMS. He invented the model, so it probably makes some sense.

    MySQL, in particular, violates rules #5 & 6 & 10 (and maybe more) -- it lacks a comprehensive data sublanguage (it's a subset of SQL, which already is limited in how much it can do), and views (particularly updatable views, which many RDBMS still don't support). Lack of foreign keys in MyISAM violates rule #10.

    Things like views are "derived relations", and are key ways of simplifying queries. It's almost the equivalent of saying "no function names allowed" in C - everything must be in main().

    Subqueries are crucial for key algebraic operations (there are 8 in total, I won't get into all of them here). One such operator is division [dbazine.com].

    Division can be simulated in MySQL using temporary tables, but this is woefully complex to specify and quite inefficient.

    An scenario of a question that requires division is (excerpt from Joe Celko's article above):

    A data model of Pilots, Planes, and a Hanger with planes inside of it. There's a table PilotSkills that relates which Pilots have the ability to fly a particular Plane.

    CREATE TABLE PilotSkills
    (pilot CHAR(15) NOT NULL,
    plane CHAR(15) NOT NULL,
    PRIMARY KEY (pilot, plane));

    CREATE TABLE Hangar
    (plane CHAR(15) NOT NULL PRIMARY KEY);

    The question: which pilots can fly EVERY plane in a particular hanger?

    In SQL, the answer is ugly, but requires subqueries:

    SELECT DISTINCT pilot
    FROM PilotSkills AS PS1
    WHERE NOT EXISTS
    (SELECT *
    FROM Hangar
    WHERE NOT EXISTS
    (SELECT *
    FROM PilotSkills AS PS2
    WHERE (PS1.pilot = PS2.pilot)
    AND (PS2.plane = Hangar.plane)));

    The quickest way to explain what is happening in this query is to imagine an old World War II movie where a cocky pilot has just walked into the hangar, looked over the fleet, and announced, "There ain't no plane in this hangar that I can't fly!", which is good logic, but horrible English. (and is also why some dislike SQL.)

  • Re:OSS fortune! (Score:1, Insightful)

    by Anonymous Coward on Tuesday March 18 2003, @03:39PM (#5539158)
    3 = Sell support contracts
    [ Parent ]
  • Re:OSS fortune! (Score:2, Interesting)

    by Anonymous Coward on Tuesday March 18 2003, @08:57PM (#5541261)
    3 = make the JDBC drivers GPLed to make developpers so confused about the differences between LGPL and GPL applied to Java code (there is no difference between static and dynamic linking in Java) that they have to buy a non-GPL version of the driver just to make sure they don't violate the GPL
    [ Parent ]
    • 1 reply beneath your current threshold.
  • 14 replies beneath your current threshold.