Slashdot Mirror


MySQL 4 Declared Production-Ready

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

329 comments

  1. Uh oh by grub · · Score: 5, Funny


    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.

    --
    Trolling is a art,
    1. Re:Uh oh by Anonymous Coward · · Score: 0
      Well, like ya know the DEC Alpha processor, like, I'd never buy a processor that was only an alpha. I'd rather wait until it was a beta release, but then DEC died, and then Compaq died, and I'm not surprized, since they were trying to sell alpha stuff, and only an idiot would buy alpha.

      I don't know if I would buy a gamma - too many rays, might affect the way I think if I don't wear some sort of aluminum foil hat.

      Surf safe - wear rubber gloves.

    2. Re:Uh oh by Anonymous Coward · · Score: 0

      well it was funny because its true

      "at miscrosoft, quality is 1.1"

      old saying that should be modified since they have yet to produce a HIGH quality product

    3. Re:Uh oh by DNS-and-BIND · · Score: 3, Interesting

      I thought it was strange that the story submitter said, "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." It's as if he's surprised that customers don't have the same standards as his personal linux box. Sure, they released a new tiny rev today, let's compile it and put it into production!

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    4. Re:Uh oh by sweede · · Score: 1

      I think the submitter of the article missed this release,
      http://www.mysql.com/doc/en/News-4.0.0.html
      Which was released Oct 2001.

      --
      I follow the SDK and GDN principles.. Spelling Dont Kount, Grammer Dont Neither
    5. Re:Uh oh by wideBlueSkies · · Score: 2, Informative

      When the hell are they going to start alpha or beta testing subselects? I mean come on already.

      select a.cusip, a.description
      from security_master a
      where
      a.cusip in (select b.cusip from new_issues b)
      order by a.cusip;

      When MySQL can do that simple contrived query I'll take it out of the toy box.

      --
      Huh?
    6. Re:Uh oh by abirdman · · Score: 1

      I'm trying to figure out if there's a trick in that SQL query (doesn't appear to be), but version 4 definitely does sub-selects. They make phpMyAdmin (the version I use, at least) stop functioning correctly, but they definitely work.

      (Damn, I just went to confirm it, but I'm running version 3.27 and it doesn't like sub-selects). Anyway, you're just going to have to believe me. I tried it. It works. Version 4.x.xx will do sub-selects.

      I guess it's out of the toy-box! Now, if only I could create a view, or a function (though the article hinted that UDF creation was in the "MAX" version, but not quite ready for prime time), then MySQL would be all growed up.

      --
      Everything I've ever learned the hard way was based on a statistically invalid sample.
    7. Re:Uh oh by shakah · · Score: 1
      In place of your original:
      select a.cusip, a.description
      from security_master a
      where a.cusip in (
      select b.cusip from new_issues b
      )
      order by a.cusip;

      how about the following?

      select a.cusip, a.description
      from security_master a
      INNER JOIN new_issues b ON a.cusip=b.cusip
      order by a.cusip ;
  2. Excellent... by Gortbusters.org · · Score: 1

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

    --
    --------
    Free your mind.
    1. Re:Excellent... by Anonymous Coward · · Score: 0

      >>Hand someone a PHP/MySQL book (there's tons) and let get cookin.

      Just ordered mine since my webhosting only supports Perl/PHP/CGI and MySQL. Perl holds little interest, so I am doing the PHP/MySQL shuffle. And I'd rather build my own scripts than just copy and paste--otherwise I don't learn squat.

      Should be entertaining.

  3. from the hardly-any-data-loss dept ? by tweder · · Score: 4, Funny

    Oh that's reassuring!

    1. Re:from the hardly-any-data-loss dept ? by Gortbusters.org · · Score: 2, Informative

      Production for what? For banks.. maybe not. For mom 'n pop online shops.. sure! And oh yes, even for /.

      --
      --------
      Free your mind.
    2. Re:from the hardly-any-data-loss dept ? by Ed+Avis · · Score: 0, Troll

      MySQL for online shops? Not if you want to take orders online. Atomic transactions would be very advisable for that.

      Or does this version of MySQL include InnoDB or whatever other extension you need to get real transactions?

      --
      -- Ed Avis ed@membled.com
    3. Re:from the hardly-any-data-loss dept ? by underbider · · Score: 1


      I downloaded 3.23.55, it would appear to have came with the InnoDB.

      I could do foreign key constraints etc...

    4. Re:from the hardly-any-data-loss dept ? by rifter · · Score: 1

      I was wondering the same thing, so I read the article, and yes, it includes InnoDB and therefore transactions.

    5. Re:from the hardly-any-data-loss dept ? by Anonymous Coward · · Score: 0
      You can say that again brother!

      I own Oracle stock too! Three cheers for overpriced software!

    6. Re:from the hardly-any-data-loss dept ? by juhaz · · Score: 1

      InnoDB has been in 3.x series FOR TWO YEARS.

      Hint: if you want to bash something, do it good, check your facts. If you don't, and go on like you do, sprouting incorrect shit, you just make YOURSELF look like a MORON that you are.

    7. Re:from the hardly-any-data-loss dept ? by MattRog · · Score: 1

      Actually I'd think mom-n-pop shops would be *harder* hit by the loss of a transaction than a larger company. A lost sale for them would make up a substantially larger percentage of their revenue than a multi-billion-dollar bank.

      Of course, the mom-n-pop shops have (usually) much smaller transactions than banks, so a bank loss may hit more. Still, if I was a mom-n-pop I'd want NO loss -- it's money out of my pocket!

      --

      Thanks,
      --
      Matt
    8. Re:from the hardly-any-data-loss dept ? by Gortbusters.org · · Score: 1

      What's more money out of your pocket... Oracle or the rare lossed transaction?

      --
      --------
      Free your mind.
    9. Re:from the hardly-any-data-loss dept ? by MattRog · · Score: 1

      Oracle is not the only DBMS product out there capable of avoiding data loss. If you want to stay free, you can use PostgreSQL/SAPDB/etc.. If you want to go pay you can use DB2/Sybase ASE/MS SQL Server/etc..

      --

      Thanks,
      --
      Matt
    10. Re:from the hardly-any-data-loss dept ? by joshmccormack · · Score: 1

      I think free in this case not only applies to speech and beer, but the price of sitting at the bar - in other words, not everyone has their own box to host stuff on and those who don't have to go for one of the shared hosting things. And they nearly all have MySQL. Same reason why you don't see as much JSP, mod_perl, etc. as you'd think you would.

  4. Mac OSX? by Anonymous Coward · · Score: 1

    Whatever happened to them releasing the Command Center (?) software for OSX in February ... 4.0 ... 4.0 ... pfft.

  5. Uh, postgres? by Anonymous Coward · · Score: 4, Interesting

    Does MySQL still do table-level locks and no foreign keys? If so, I'll stick to using a real database.

    1. Re:Uh, postgres? by rushfan · · Score: 5, Informative

      I think the InnoDB allows FK constraints (and InnoDB is included now)

      http://www.mysql.com/doc/en/SEC458.html

    2. Re:Uh, postgres? by huhmz · · Score: 2, Informative

      InnoDB uses row based locking.

    3. Re:Uh, postgres? by lamber45 · · Score: 2, Informative

      MySQL 3.something+ also supports row-level locks in MySQL tables.

      I hope the MD5, SHA, etc. functions are default now... they seem to be absent from the 3.23.55 build that comes with the Debian distribution.

    4. Re:Uh, postgres? by AlecC · · Score: 5, Informative

      The InnoDB table type, which is now a part of the standard production release, supports transactions, row locking, and foreign keys.

      --
      Consciousness is an illusion caused by an excess of self consciousness.
    5. Re:Uh, postgres? by Anonymous Coward · · Score: 0

      Nested queries? Views?

    6. Re:Uh, postgres? by Anonymous Coward · · Score: 0
      I think the InnoDB allows FK constraints (and InnoDB is included now)

      And it only took 6 years! I also noticed that the part in the documentation talking about why foreign keys are bad and how you shouldn't use them has now been removed. I'm glad that mysql is progressing towards becoming a real database. Hopefully they'll add subselects soon (please please)

    7. Re:Uh, postgres? by althalus · · Score: 2, Informative

      Actually, Innodb does FK's (as mentioned earlier). It also does row-locks/ Multi-versioning. It's had those features for quite a while now.

    8. Re:Uh, postgres? by oliverthered · · Score: 2, Insightful

      Use postgres for anything complicated and MYSQL for anything simple, light weight and fast.

      Why use openoffice for editing /fstab when vi is fine.

      --
      thank God the internet isn't a human right.
    9. Re:Uh, postgres? by Anonymous Coward · · Score: 0

      i'd say postgres is more like vi and mysql is more like a frontend to `cat`

  6. Just now? by Geekenstein · · Score: 2, Informative

    According to the MySQL site (manual) Gamma status was granted in December with version 4.0.6.

    1. Re:Just now? by JabberWokky · · Score: 3, Informative
      Yes, and the production release was just made. They have been saying stable release was the 3.x, and the unstable was the Gamma 4.x. The 4.x Gamma is now the stable production release.

      --
      Evan

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
    2. Re:Just now? by einhverfr · · Score: 1

      Yes, and the production release was just made. They have been saying stable release was the 3.x, and the unstable was the Gamma 4.x. The 4.x Gamma is now the stable production release.

      And I thought Kernel version numbers were confusing :P

      --

      LedgerSMB: Open source Accounting/ERP
  7. Excellent. by Anonymous Coward · · Score: 2, Funny

    My MySQL 4 worm is also ready for your production environments. Get ready, sucka!

  8. Solaris 2.5.1 by Rasta+Prefect · · Score: 1


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

    --
    Why?
    1. Re:Solaris 2.5.1 by bofkentucky · · Score: 1

      Egads, what's keeping you on that old a version of solaris, I know there are legacy apps out there but the only thing that's holding us back from all modern (2.8) versions is stupid Ciscoworks 2000 and it gets a fat ultra 80 that would make a fine workstation for me, stupid ciscoworks

      --
      09f911029d74e35bd84156c5635688c0
    2. Re:Solaris 2.5.1 by hhnerkopfabbeisser · · Score: 2, Interesting

      MySQL is developed mainly under Solaris and is known to work best there. Threaded performance under Solaris is said to be way better than under Linux.

      This may of course not apply to your version of Solaris...but I can't make any qualified comments on this, really, as I have never even seen Solaris from up close.

    3. Re:Solaris 2.5.1 by Anonymous Coward · · Score: 0

      huh?

      upgrade solaris. you shouldn't have problems running old executables. that's the beauty of solaris and sparc ... binary compatibility.

    4. Re:Solaris 2.5.1 by Rasta+Prefect · · Score: 1
      Egads, what's keeping you on that old a version of solaris, I know there are legacy apps out there but the only thing that's holding us back from all modern (2.8) versions is stupid Ciscoworks 2000 and it gets a fat ultra 80 that would make a fine workstation for me, stupid ciscoworks

      Actually, we're running fairly recent versions of Apache, MySQL and various development environments. The problem is the lack of Solaris 2.6+ support for the 4x125 Mhz 670 MP that we're running as a server for students to develop projects on.

      --
      Why?
    5. Re:Solaris 2.5.1 by wideBlueSkies · · Score: 1

      How about the thing that holding my shop back from Solaris 2.8 is the freakin' Rouge Wave libraries.

      They don't work with the SUN 5.6 C++ compiler. I feel bad for anyone who's come to rely on these libraries.

      Myself, I got away from them about 2 years ago. I inherited some code that used the product, and I hated it. It smelled bad. Really. So I implemented my own routines on my own schedule. Good thing, cuz every other bozo using those libs is on a tight conversion schedule.

      --
      Huh?
  9. Its Stable by krow · · Score: 5, Informative

    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.

    --
    You can't grep a dead tree.
    1. Re:Its Stable by acostin · · Score: 1

      I can't get the query cache to work on our InterAKT website.

      I don't know why, maybe because we use a database statistics engine which connects to the same database to store site accesses, and maybe this invalidates all queries....

      We've never researched more, as the final caching system is of course the "cache on disk" one.

      Alexandru

    2. Re:Its Stable by ChristTrekker · · Score: 1

      That's good to know. I wanted to use MySQL 4 when I got around to deploying slash. Since I'll be using an older box (albeit loaded on RAM to run slash), any speed I can squeeze out is a good thing.

      However, for any other DB work I do, I'm beginning to lean more and more toward PostgreSQL. I used to be a MySQL bigot simply because that's what I knew, but PostgreSQL's merits have swayed me. Broader experience is always a good thing. Has anyone gotten slash to run on PostgreSQL yet? Last I heard the work was very preliminary.

    3. Re:Its Stable by CableModemSniper · · Score: 3, Funny

      Allright, now I *know* not to upgrade. (kidding)

      --
      Why not fork?
    4. Re:Its Stable by krow · · Score: 1

      Once MySQL became GPL'ed we dropped the support ourselves. Its way out of date at this point and really not supported.

      --
      You can't grep a dead tree.
    5. Re:Its Stable by krow · · Score: 2, Informative

      Did you get all of the cache variable set correctly?
      This is what I have for Slashdot:

      query_cache_size = 100M

      To be honest that number is overkill even for us. I find that tuning the Innodb pool size for more memory has better gain for memory used. Slashdot's is 1548 megs at the moment.

      --
      You can't grep a dead tree.
  10. Simply powerful or powerfully simple? by Gortbusters.org · · Score: 5, Informative
    Things like embedded MySQL make MySQL a bag of tricks to use in many environments.

    What other features 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.
    --
    --------
    Free your mind.
    1. Re:Simply powerful or powerfully simple? by micromoog · · Score: 4, Interesting
      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"!

    2. Re:Simply powerful or powerfully simple? by Anonymous Coward · · Score: 0

      including full support for transactions

      You mean support for MySQL proprietary bastardized wanna-be support for what they tell you transactions are supposed to be, right? Great, now all we have to do is tell all of the ANSI SQL92 compliant databases to change their syntax to match MySQL syntax and maybe we'll have some semblence of portability.

      Sorry, I have no respect for a database that doesn't understand:


      BEGIN TRANSACTION;
      BEGIN TRANSACTION;
      DELETE FROM MyTable;
      COMMIT TRANSACTION;
      ROLLBACK TRANSACTION;


      Oh well, enjoy your vendor lock-in!

    3. Re:Simply powerful or powerfully simple? by Anonymous Coward · · Score: 1, Funny

      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.

    4. Re:Simply powerful or powerfully simple? by DataPath · · Score: 1

      Some previous posts (no, I didn't rtfa) seem to indicate that foreign keys have been added with the addition of InnoDB to the codebase.

      --
      Inconceivable!
    5. Re:Simply powerful or powerfully simple? by Ragica · · Score: 2, Interesting
      Good God, mysql doesn't have intervals either? I never even realised how much i take intervals for granted in postgresql until i read this. It's hard to imagine life (for very long) without them.

      But of course it's probably just another thing mysqlers will claim that "90% of people would never use anyhow". Well, 100% of mysqler's, anyhow.

      They don't know what they're missing.

    6. Re:Simply powerful or powerfully simple? by JohnDenver · · Score: 4, Funny

      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)

      --
      "Communism is like having one [local] phone company " - Lenny Bruce
    7. Re:Simply powerful or powerfully simple? by Mage+Powers · · Score: 1

      Whats a subquery?

      Something like this? just curious as I have no clue :D
      $sql = sprintf("SELECT articles.*, users.*, categories.category FROM ((articles INNER JOIN users ON articles.authorID = users.userID) INNER JOIN categories ON articles.categoryID = categories.categoryID) WHERE (articles.published = 1) ORDER BY articles.datePublished DESC LIMIT %s", $totalArticles);

    8. Re:Simply powerful or powerfully simple? by micromoog · · Score: 3, Informative
      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.

    9. Re:Simply powerful or powerfully simple? by flink · · Score: 1

      Unfortunately, I don't think PostgreSQL supports nested transactions yet either. At least in 7.3, you get a warning if you start a transaction when one is already open. It would definately be awesome to have at least one Free database engine that had full SQL92.

      In practice though, it is can be hard to write a complex application without using some vendor-specific features, particularly if you're not fortunate enough to be ona platform with full SQL92. It's good to have a DB abstraction layer in any case, so at least all the vendor cruft stays together.

    10. Re:Simply powerful or powerfully simple? by Bodrius · · Score: 1

      Views? They are for people who don't want their users/clients to write their own queries.
      Foreign keys? They are for people who don't like their users/clients messing up the data.
      Full Outer Joins? They are for people who actually have use for a database.
      Subqueries? They are for people who ask from the complex daemon program that handles persistence, data integrity and relations to handle the menialities of a loop and give the damn data back.
      Set operations? They are for people who understand there are more elegant solutions than producing and then butchering cartesian products.

      --
      Freedom is the freedom to say 2+2=4, everything else follows...
    11. Re:Simply powerful or powerfully simple? by Anonymous Coward · · Score: 0

      Mine? Is there something with the implementations PostgreSQL and Firebird already have, that we need another?

    12. Re:Simply powerful or powerfully simple? by ickle_matt · · Score: 1

      I've found that under some circumstances trying to do complex subqueries using joins can end up an order of magnitude slower - just something to watch out for...

  11. beta? by Anonymous Coward · · Score: 0

    To reply to the original poster - MySQL 4.0 has not been beta for a long time. 4.0.x releases have been labeled "gamma" for many months.

    I have been running most of 4.0.x releases on live servers without any problems whatsoever. Running 3.23.x today is equivalent to running a 2.2 Linux kernel.

    1. Re:beta? by dark-br · · Score: 0, Offtopic

      I run 2.2 kernel you insensitive clod!

  12. MySQL Query by NewbieSpaz · · Score: 2, Funny

    Select * from "http://www.mysql.com/downloads/" where "version" = "mysql-4.0.12"

    --
    ------
    Random, useless fact: I type in startx entirely with my left hand.
    1. Re:MySQL Query by Anonymous Coward · · Score: 0

      that was the lamest thing I've ever read.

    2. Re:MySQL Query by Anonymous Coward · · Score: 0

      Me too, until I read your answer.

    3. Re:MySQL Query by Anonymous Coward · · Score: 0

      Your signature says:

      Random, useless fact: I type in startx entirely with my left hand.

      Assuming you are using a QWERTY keyboard layout, how the fuck else would you type it?

    4. Re:MySQL Query by Anonymous Coward · · Score: 0

      type this

      startx extract aluminum

    5. Re:MySQL Query by Anonymous Coward · · Score: 0

      not wishing to be picky - missed out the semi-colon.

    6. Re:MySQL Query by Anonymous Coward · · Score: 0

      his was untill i read yours and relized it wasn't so much an answer as a reply.

  13. Who needs mySQL by endeitzslash · · Score: 0, Troll

    MS SQL server has much better sharing capabilities.

  14. Is it worth the switch? by m0i · · Score: 2, Informative

    According to the crash-me comparison page, there's not much differences with the previous stable release. Some current benchmarks would probably be more significant, performance-wise.

    --
    have you been defaced today?
    1. Re:Is it worth the switch? by Anonymous Coward · · Score: 0

      Yeah, as would a comparison with a version of microsoft SQl server that was made within the last five years!

    2. Re:Is it worth the switch? by Maxwell · · Score: 1

      The comparison tool uses:

      Microsoft SQL Server 2000 - 8.00.194 (Intel X86)

      That's SQl 2000 with SP1 - the latest shipping version available.

      JON

    3. Re:Is it worth the switch? by loco123 · · Score: 2, Informative

      I believe it is.

      We're using it in production since gamma. Our site delivers over 2.5 mln pageviews per day. Database size is about 25GB.

      Major differences compared to 3.x:
      - Row level locking - no more glitches on big updates
      - Instant crash recovery thanks to InnoDB
      - Hot backup ($400)
      - Query cache:
      Queries Avg/Sec: 388.45
      Cache Hits Avg/Sec: 108.04 Ratio: 27.81%

    4. Re:Is it worth the switch? by bovinewasteproduct · · Score: 1

      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.

      Will InnoDB still let you drop an active table from the database? FK constraints don't mean much if you can just drop a table needed by them...

      Plus they are testing old versions of various databases... The PostgreSQL base version is over a year old...Uggghhh.

      BWP

  15. Slash by ericdano · · Score: 3, Interesting
    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.....

    --
    It's either on the beat or off the beat, it's that easy.
    I moderate therefore I rule!
    --
    1. Re:Slash by tuffy · · Score: 3, Informative

      Looks like they do already.

      --

      Ita erat quando hic adveni.

    2. Re:Slash by RLiegh · · Score: 0, Redundant

      The big question is: When Slashdot is going to start using it?

      Real Soon Now
    3. Re:Slash by Anonymous Coward · · Score: 0

      Does this answer your question? duh

  16. Do you really by Anonymous Coward · · Score: 0

    Do you really think it odd for a customer to refuse to use a beta of a program that their entire company is centered around?

  17. Does this mean a new O'Reilly edition? by Anonymous Coward · · Score: 0

    Lord I hope not. I gave up on Perl after the Nth Camel Book.

    1. Re:Does this mean a new O'Reilly edition? by Anonymous Coward · · Score: 0
      I gave up on Perl after the Nth Camel Book.

      Camel?? Damn, no wonder I wasn't getting any perl info, I kept on buying the Emu books.

  18. It's not 4.0.... by Anonymous Coward · · Score: 0

    ...It's YourSQL

  19. Same time you start reading posts before posting by Anonymous Coward · · Score: 0

    LOL

  20. Not much to compete in... by Graelin · · Score: 1

    MySQL is already faster than postgres at the limited amount of things MySQL can do.

    MySQL, even with 4, still lacks numerous features found in Postgres. Looking at MySQL's site, it won't have most of these features until 5.1 comes out.

    Someone brought this up in the last MySQL thread, but there really haven't been any *recent* MySQL vs. Postgres comparisons.

    I'm excited for 4.0, we'll probably make our slave a 4.0 box today.

    1. Re:Not much to compete in... by merlyn · · Score: 2, Informative
      MySQL is already faster than postgres at the limited amount of things MySQL can do.

      Perhaps you believed the benchmark that only the MySQL team has been able to come up with. Every other benchmark I've seen that simulated multiple users always showed Pg to be better even on very simple queries.

      Beware benchmarks that show only one thread or from mysql's developers themselves.

    2. Re:Not much to compete in... by SuGa · · Score: 1

      The Benchmarks I have seen showed MySQL to be faster than Pg but not that stable on high load... But those Benchmarks where quite old and I don't even have any links to them anymore, so ... :-)

  21. Why is the Windows download 20 megabytes when by zymano · · Score: 1, Interesting

    soloris and linux average 6-8 megs?

    1. Re:Why is the Windows download 20 megabytes when by xamel · · Score: 0

      Probably, its due to the fact that Linux has a bunch of libraries that the program uses already install...whereas with Windows, you can't really take any libraries/system shit for granted

      --
      GOD DAMNIT , MODERATE ME!
    2. Re:Why is the Windows download 20 megabytes when by dildatron · · Score: 2, Flamebait

      statically linked libraries, dude.

      --


      If you had nuts on your chin, would they be chin nuts?
    3. Re:Why is the Windows download 20 megabytes when by Anonymous Coward · · Score: 0

      > statically linked libraries, dude.

      Moderators on drugs again? The above was given a +4!

      All of the UNIX binaries from MySQL are statically linked. The difference can't be the statically linked libraries, because both Windows and UNIX use them. If the kid knew how to do "ldd /usr/sbin/mysqld", he wouldn't have posted such drivel.

    4. Re:Why is the Windows download 20 megabytes when by Anonymous Coward · · Score: 0

      The Windows installation contains everything possible, ie. multiple versions of the server for NT and 9X, both max and regular version, the embedded library, and a few windows only programs. Basically it includes everything offered in the RPM's installation (which is about 17-18 MB when you add them up) plus a few additional binaries which make up the difference.

    5. Re:Why is the Windows download 20 megabytes when by Anonymous Coward · · Score: 0

      Solaris is how you spell it and as the other poster said, statically linked libararies. But considering you can't f@cking spell Solaris (and probably can't spell Unix for that matter) you might not understand the concept.

  22. SELECT version FROM mysql WHERE ready='true'; by Anonymous Coward · · Score: 5, Funny

    Error : no rows returned.

    1. Re:SELECT version FROM mysql WHERE ready='true'; by Anonymous Coward · · Score: 0

      That's funny, I do millions of dollars a year off my sites with MySQL, with no problems and great performance...

      Exactly what was your criteria for ready?

      Not all of us need an 800 lbs gorilla.

    2. Re:SELECT version FROM mysql WHERE ready='true'; by sik0fewl · · Score: 1

      Try:
      SELECT version FROM mysql WHERE ready='Y';

      --
      I remember when legal used to mean lawful, now it means some kind of loophole. - Leo Kessler
  23. VIEWS! I said VIEWS, son! by jot445 · · Score: 4, Insightful

    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 to be overcome. Must control fist-of-death!

    --
    The preceding comment has been reviewed and declared to be compliant with HIPPA Phase II regulations.
  24. Waiting for maturity by acostin · · Score: 5, Interesting

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

    1. Re:Waiting for maturity by Gortbusters.org · · Score: 2, Interesting

      mmMMMMmmm, stored procedures. I like the command line client of postgresql a lot as well. \d is much better than describe .

      --
      --------
      Free your mind.
    2. Re:Waiting for maturity by julesh · · Score: 1

      Damn. You just prompted me to look at the manual for this release and I'm disappointed now. Last I heard, subselects were going to be included in 4.0. It looks as though they've been put back to 4.1 (although it seems as though they're already available in the 4.1 betas). Although you can have UNIONs now by the looks of things. They also have a feature described as 'multi table deletes'. Not sure if this is cascaded deletes or something else, but it might be of use to you... Stored procedures are apparently scheduled for 5.0.

    3. Re:Waiting for maturity by acostin · · Score: 1

      I know, I know. 5.0 will bring them all to us.

      But as a software tools developer I am, I know what a software release schedule is :)

      So we'll just wait and hope for better support in the next versions ...

      Until then, our code will be divided in two - the clean PHP code for real databases and the big and ugly PHP code for MySQL databases.

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

      Alexandru

    4. Re:Waiting for maturity by Osty · · Score: 5, Insightful

      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.

    5. Re:Waiting for maturity by puppetman · · Score: 1

      We use alot of stored procs and triggers on one of our Oracle databases, and I curse the consultants that did the development.

      All that logic is now Oracle specific (all 12,000 lines worth). It breaks when a table is updated that one of the stored procs references. I love searching for invalid stored procedures.

      The less logic in the database, the more portable and migratable (is that a word?) it is.

      If you want to keep the business logic out of the client, then create Enterprise Java Beans using Resin. A session bean is an excellent replacement for a stored procedure. It's fast, portable, uses connection pooling, will throw an exception (rather than just quietly fail like it does on Oracle) if a table changes, etc, etc.

    6. Re:Waiting for maturity by Anonymous Coward · · Score: 0

      If your having problems finding what was referenced, the problem isn't that he used stored procedures, it's that they weren't well documented.

      We insist everyone document fully all aspects of our databases. When we need to make a change to the table, it's very simple to check out what changes may have to be made to all triggers, other stored procedures, etc. I don't want to give up the performance boost they give just because some shmuck can't document. If you can't document your code, you don't work here long. The other coders make sure of that.

    7. Re:Waiting for maturity by Osty · · Score: 1

      We have our database code (for SQL Server 2000) buildable in our source tree, and take drops from there when we need to update production. If changing a table would break a stored procedure, it's going to break at build time rather than run time. We're dealing with quite a few more than 12,000 lines of SQL code, yet we have a pretty good handle on modifying the code. Sounds like you need some changes to your process, rather than to how your code is represented.


      As the AC said, the problem is not with the sprocs, but with the people who didn't document them. As well, the fact that the sprocs are Oracle-specific is not because the SQL code is in stored procedures, but because the developers wrote Oracle-specific code.

    8. Re:Waiting for maturity by Anonymous Coward · · Score: 0

      Does Oracle even support SQL/PSM yet? I thought only PG, DB2, and Interbase have it.

    9. Re:Waiting for maturity by rifter · · Score: 1

      Man, and how many versions back does this promise go, anyway? I would not hold my breath. Still, it is nice they finally have transactions.

    10. Re:Waiting for maturity by julesh · · Score: 1

      Erm... they've had transactions for quite a while now, actually. Not sure which version they were introduced in, but I've got 3.23.43 on my system here, and that definitely supports transactions.

      And according to the file datestamps, that was installed in October 2001.

    11. Re:Waiting for maturity by rifter · · Score: 1

      Well, I haven't been following this *super closely* but my understanding is this is the first *stable* release that supported transactions. Now to be fair, InnoDB has been available seperately for quite some time, and InnoDB is really where most of these features come from, but the decision to include InnoDB in the main distribution of MySQL has been a long time in coming, and even then, it was an alpha/beta/gamma thing.

    12. Re:Waiting for maturity by julesh · · Score: 1

      A quick check of the MySQL.com web site suggests that several members of the 3.23 series were 'stable' releases, in particular 3.23.32 was a stable release that supported transactions, and is over 2 years old now.

  25. Woho! by Dri · · Score: 5, Interesting

    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!

    --
    Girls are strange. They don't come with a man page.
    -- Michael Mattsson
    1. Re:Woho! by arf_barf · · Score: 1, Interesting

      Yeah, heard that 2 years ago, and still no stored procs.....In my opinion MySql is hyped way too much (just because it runs onn linux, it doesnt make it a good product)...and there are better OSS alternatives.

      Good bye Karma (thats what you get for anti-linux/anti-mysql opinions)

    2. Re:Woho! by NineNine · · Score: 2, Insightful

      You've either got more balls, or less real world experience than me. I'm not even *thinking* about using MySQL until all of these new "features" have been tested for at least a year or so. My databases are the kinds of things I play around with.

  26. 3.2x to 4.0 by soapvox · · Score: 1

    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?

    1. Re:3.2x to 4.0 by gid · · Score: 2, Informative

      There's always the documentation

  27. The newest features seem to be directed to... by jkauzlar · · Score: 1
    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?

    1. Re:The newest features seem to be directed to... by noda132 · · Score: 1

      There was another proposed feature that was cryptic to me: it looked like it would provide support for database redundancy. Is this correct?

      Do you mean replication? That's been around forever. Check out http://www.mysql.com/doc/en/Replication.html

  28. Alpha Beta Gamma by L.+VeGas · · Score: 4, Funny

    If it's good enough for such a reputable fraternity, it's good enough for me.

  29. Triggers? by mshiltonj · · Score: 3, Interesting

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

    SO close.....

    1. Re:Triggers? by Gortbusters.org · · Score: 1

      Maybe in the next one... till then it's postgres for you! ;)

      --
      --------
      Free your mind.
    2. Re:Triggers? by mshiltonj · · Score: 3, 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.

    3. Re:Triggers? by nontrivial · · Score: 5, Insightful

      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.

      --
      http://james.nontrivial.org
    4. Re:Triggers? by Gortbusters.org · · Score: 1

      To speak of? It has a not that great replication story... you can write your own data access service/layer. Can do a sync engine easily enough with a couple of boxes IP aliasesed together.

      But yeah, not supported, not official, and definitely not out of the box.

      --
      --------
      Free your mind.
    5. Re:Triggers? by nycjay · · Score: 1

      triggers are overrated in some cases, but can be a great help in others... for example, we have triggers on a couple of tables, so when there are updates, the changes and the user/timstamp who did the update are written to an audit table. makes for a nice, simple way to automate auditing

      --
      Oh boy, a Bot-Mitzvah... Shalom hunger, Shalom free food...
    6. Re:Triggers? by The+Bungi · · Score: 1, Interesting
      1. Reply to post making valid point about lack of FeatureX in ProductY
      2. Argument that because I don't need FeatureX or I think FeatureX is overrated, FeatureX is therefore not needed. Ergo, ProductY is teh bomb.
      3. ???
      4. Karma!1!!
      The lack of foreign keys, triggers and stored procedures (among other things) are serious problems with mySQL, regardless of its capabilities as a low to medium-range/load database, and regardless of statements by NewsForge to the tune of "mySQL is ready to overtake SQL Server and Oracle as enterprise database blah blah blah".

      Hype does not a software product make.

    7. Re:Triggers? by glwtta · · Score: 0, Flamebait

      Your inability to properly develop/maintain applications says nothing about triggers or their relative usefulness.

      --
      sic transit gloria mundi
    8. Re:Triggers? by frostman · · Score: 4, Interesting

      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.

      --

      This Like That - fun with words!

    9. Re:Triggers? by adri · · Score: 1

      You've obviously never written a system that had to be audited.

      A well thought out database with RI/foreign keys, triggers and stored procedures can be a _joy_ to work with.

      Thats the whole idea of triggers and stored procedures - if they're annoying you then you're either doing something wrong or the _integrity_ of the database hasn't been well thought out.

      Push some of the application verification into the SQL server for integrity and leave the perl code for UI.

      My main beef here is that the majority of web developers see the database as just a storage space and their front end application code (in perl, php, C++, C, ejb, whatever) as the interface. What do I do if I wish to extend the application by adding bits of my own code whilst not breaking? Speak XML to perl code which arbitrates all of my SQL calls? Or speak stored procedures? Hmm.

      Case in Point: an ISP I work for uses a system which implements the business logic (stuff like "add x cents to this account based on how much traffic at what rate) into a big precompiled Java library. Cool. Now I want to extend things a little by importing netflow data. I don't have much of a choice how I do it - I _have_ to use their libraries. Which are slow, cause the database to lock up and require me to start up a 200meg java vm just to import a _single_ accounting record. If it were implemented, say, in postgres w/ stored procedures the API could be "just call USER_ADD_TRAFFIC_INFO(userid, timestamp, len, trafin, trafout)".

      And for those of you who will say "but what if I want to have an external event! like sending an email!" - use a queue. Have an event queue which is polled by your application. Heck, Postgres _can_ send email out from a stored procedure (there's C and Perl bindings IIRC but I only use plpgsql..)

    10. Re:Triggers? by topham · · Score: 1

      The main problem is the majority of programmers on Slashdot prefer to program ad-hoc. It's hard to write Ad-Hoc code when you use a structured database (of any kind).

      They much prefer solutions like the Prevalant(sp?) database mentioned a few weeks ago as it can more readily support designing on the fly.

  30. Multi-table deletes by digitect · · Score: 4, 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.

    --
    There is no need to use a SlashDot sig for SEO...
    1. Re:Multi-table deletes by aldjiblah · · Score: 2, Interesting

      > No more having to query/for each in/delete type constructs
      > across many-to-many relationship tables. ... also known as foreign keys and triggers in real databases.

      --
      sig sig sputnik
    2. Re:Multi-table deletes by chriskl · · Score: 1

      Dude - if InnoDB actually had Foreign Keys that could cascade, then the totally non-standard SQL extension that is multi table deletes would be quite unnecessary.

      Chris

  31. beta through gamma? by JAZ · · Score: 1

    doesn't gamma come right after beta? more like beta and gamma or alpha thru gamma.

    now if it had gone through test releases beta through omikron...

    --


    "Karma can only be portioned out by the cosmos." -- Homer Simpson
    1. Re:beta through gamma? by xanadu-xtroot.com · · Score: 1

      now if it had gone through test releases beta through omikron...

      What does David Bowie have to do with this?

      --
      I'm not a prophet or a stone-age man,
      I'm just a mortal with potential of a super man.
    2. Re:beta through gamma? by KewlPC · · Score: 1

      Oh dear God why did you have to remind me of that awful game?

  32. go by Anonymous Coward · · Score: 0

    48 hour count down well under way.

  33. File mirror on Freenet by Sanity · · Score: 2, Informative

    Just mirrored the file on Freenet, you can grab it here.

    1. Re:File mirror on Freenet by Anonymous Coward · · Score: 0

      Are you stupid dude? Who the fuck is going to download open source software from YOU? I don't even know you.

    2. Re:File mirror on Freenet by dildatron · · Score: 0

      Thanks for the link buddy!

      --


      If you had nuts on your chin, would they be chin nuts?
  34. Re:VIEWS! I said VIEWS, son! by arf_barf · · Score: 1

    Try Firebird, I have switched from MSSQL 2K to Interbase/Firebird with success. It has all the good features from MsSql (Stored procs, triggers, views etc.)

  35. Re:Uh, Oracle? by Anonymous Coward · · Score: 0

    Does PostgreSQL support point in time recovery and file system backups while the database is running? If not, I'll stick to using a real database.

  36. sub selects by minus_273 · · Score: 4, Interesting

    any word on whether we have subselects yet. I couldnt see it in the change log. They are dearly missed..

    --
    The war with islam is a war on the beast
    The war on terror is a war for peace
    1. Re:sub selects by gid · · Score: 4, Informative

      I believe these are due for the 4.1 series. There's a little note about it here

  37. Re:VIEWS! I said VIEWS, son! by HelbaSluice · · Score: 4, Informative

    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.

  38. Uhm, PostgreSQL by gabe · · Score: 2, Insightful

    I know people really dig MySQL and everything, but seriously, PostgreSQL has all of those features, and it's ready for production use NOW.

    --
    Gabriel Ricard
  39. mysql-max 3.23 v. mysql 4.0 by bear_phillips · · Score: 1

    What does 4.0 have that msyql-max 3.23 not have? I switched to mysql-max so I could use InnoDB.

    --
    http://www.windmeadow.com/
    1. Re:mysql-max 3.23 v. mysql 4.0 by noda132 · · Score: 1

      What does 4.0 have that msyql-max 3.23 not have? I switched to mysql-max so I could use InnoDB.

      What do you think the Changelog is for?

  40. Re:Uh, Oracle? by Anonymous Coward · · Score: 0

    Yes it does.

  41. Waiting for PHP users to wisen up by sporkboy · · Score: 2, Informative

    Just because PHP doesn't let you write a proper database access layer doesn't mean that a database NEEDS those features to exist.

    I've written multiple CMS-like applications, and seen several commercial systems which do fine without the features you listed...the key thing is that they are written in Java or even Perl so they can figure things out on their own.

    Look in the mirror before throwing stones.

    1. Re:Waiting for PHP users to wisen up by acostin · · Score: 1

      Hey,

      PHP libraries for emulating misses in the database already exist (even we have a commercial product called ImpAKT (extension to Dreamweaver MX) that knows how to cascade or restrict access from PHP ImpAKT 2 tNG homepage.

      However, this does not mean that those issues shouldn't be done in the database. I mean, I could write my own cascaded deletes, but how will those interfere with someone adding some other records in the database "in the same time"? Transactions imply that all complex data storage application logic will be included in the database, and not emulated from class libraries.

      Anyway, we get a good usage of MySQL as it is, just there's a lot of room for improvement.

    2. Re:Waiting for PHP users to wisen up by platypus · · Score: 1

      I mean, I could write my own cascaded deletes, but how will those interfere with someone adding some other records in the database "in the same time"?

      Hmm, funny. For one you (rightly, IMO) criticize MySQL for lacking some nice features of "real" SQL servers, but OTOH you product is written in something as cumbersome as php.

      Use something transaction aware like zope (I know there are others, but I use zope), and get out of the ugly $dbh->commit(), $dbh->rollback() business. It's total nonsense to be forced to think about something like transaction boundaries in a web app, where these boundaries are clearly defined by the request and the response.

    3. Re:Waiting for PHP users to wisen up by acostin · · Score: 1

      Hmm, funny. For one you (rightly, IMO) criticize MySQL for lacking some nice features of "real" SQL servers, but OTOH you product is written in something as cumbersome as php.

      That's why we need a powerful database server. We never code $db->Begin(), $db->End(), we simply put our SQL queries in stored procedures, and PostgreSQL takes care of everything for us.

      Not all applications on the world require a very powerful transaction engine in the middleware. PHP is the best language for a large variety of dynamic websites, and not because it's extremely "cumbersome", but for the opposite.

      It has a lot of misses, but it's not Java nor Zope, and many likes it this way.

  42. Re:Uhm, PostgreSQL by Dri · · Score: 1

    I must say I agree with you. Why the hype around MySQL when Postgres has all those features ready for primetime. I dunno.

    --
    Girls are strange. They don't come with a man page.
    -- Michael Mattsson
  43. Faster than PostreSQL? by Jack+William+Bell · · Score: 4, Interesting

    I am wondering about caparative processing speed myself. MySQL has always been the speed leader in Open Source databases. Now that they have added some industrial strenght features (like ACID compliant transactions and row level locking) via InnoDB, how well does the speed difference hold up? Is it still way faster, or just a little faster or not faster at all?

    If the difference isn't significant then there is no reason to choose MySQL over PostreSQL for applications requiring high levels of data integrity. Especially when PostreSQL also brings you stored procedures, views and so on.

    --
    - -
    Are you an SF Fan? Are you a Tru-Fan?
  44. Apparently 90% don't need those features.......yet by JohnDenver · · Score: 5, Interesting

    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?

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
  45. Yes! by vandan · · Score: 5, Informative

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

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

      but I assume this is from the Postgres 'but WE have the better database - everybody look over here' crowd.

      But... well... they DO have the better database. You can't really complain when they want to advertise it.

      Perhaps 'better' isn't the right word though... more like 'scalable' or 'full featured'. MySQL is great when you want fast access to a simple db.

  46. Why not PostgreSQL? by ikioi · · Score: 2, Interesting

    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?

    1. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0

      It's easier for clueless newbies to deal with and thus list "database administrator" on their resumes. *shrug* AFAICT that's the main one...

    2. Re:Why not PostgreSQL? by Eric+Savage · · Score: 3, Insightful

      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.

      --

      This is not the greatest sig in the world, this is just a tribute.
    3. Re:Why not PostgreSQL? by The_DOD_player · · Score: 1

      Who knows?

      Why is Linux more popular whan FreeBSD is just as free?
      Why is PHP more popular when Perl is just as free and does more?

      .. seems like coincidence to me.

    4. Re:Why not PostgreSQL? by gid · · Score: 3, Interesting

      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.

    5. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 2, Insightful

      as much as many may hate to admit not everyone is running linux/unix. MySQL has a native Windows install - you download it and run setup.exe. You can then play with it, develop under windows and deploy elsewhere.

      When I went looking for Postgress for Windows all I could find was instructions that involve cygwin.

    6. Re:Why not PostgreSQL? by Troll_Kamikaze · · Score: 1

      Two words:
      human ignorance

    7. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 1, Insightful

      Because I didn't manage to make it work. And boy, I tried. Just to test Postgresql I've spent hours figuring out how to read from it or write/update/delete.

      Mysql, on the other hand, has phpMyAdmin.

    8. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0

      You do understand SQL? and yes there is also phpPgAdmin for the clueless people.

    9. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0

      We use MySQL rather than PostgreSQL partly because we don't have the resources to migrate all of our historical stuff or run 2 difference database servers, PostgreSQL 7.x looks like a good choice _now_ and if we were starting over _now_ we'd probably use it instead.

      But the reason why we picked MySQL in the first place was simply because we used PostgreSQL (I think it was 6.x, but it could have been 5.x, it was several years ago) orginally and it was a disaster - it was unstable, we had to use large objects because of the 8KByte per row limit, the backup tool crashed the db server when it encountered large objects and the performance was terrible.

      PostgreSQL 7.x looks much better (I believe all of the above complaints have been fixed) and people I've spoken to who run it have been happy with it, but at the end of the day we can usually get around MySQL's lack of features without too many problems (it's mostly just web stuff, so most of it's really not too complex), certainly not enough problems for us to justify the investment in time and/or hardware required to switch at present.

    10. Re:Why not PostgreSQL? by PizzaFace · · Score: 1
      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.
      I hope your "rockstar" programmers are more discriminating in deciding what tasks are best offloaded to clients. If a task requires manipulation of a large amount of data to produce a small result set, it's faster (for the end users) if you do it on the server, because server CPUs are fast and transmission of raw data to clients is slow. Client computer CPUs have lots of spare capacity, but network connections do not.
    11. Re:Why not PostgreSQL? by Trifthen · · Score: 1

      Vacuum and reindex, that's why. To run a production system, and avoid filling your disks, you'll need to cron these to run at least daily on all of your databases. In some cases, even a full periodic import/export may be necessary to clean up the slow bloat postgres has problems with. So it's really an issue of missing features vs. maintenence nightmare. Personally, I'll do without the features.

      --
      Read: Rabbit Rue - Free serial nove
    12. Re:Why not PostgreSQL? by outsider007 · · Score: 1

      whoever modded this interesting must live under a rock. nice try, while you're at it you might also want to ask why vi is better than emacs

      this whole story is a groaner for me because I just installed mysql yesyterday. they could have mentioned something...

      --
      If you mod me down the terrorists will have won
    13. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0

      Hey, I can shorten that even more!

      'Bush!'

    14. Re:Why not PostgreSQL? by bovinewasteproduct · · Score: 1

      If you don't really care about performance, you might like the additional features PostgreSQL offers.

      Serious question here...

      Has anyone seen a MODERN performance comparison between PostgreSQL and MySQL? I'm talking like PostgreSQL 7.3.X and MySQL 4.X? A plus would be showing them on FreeBSD, Linux and Solaris.

      Everything up on the MySQL site is comparing PostgreSQL 7.2.2 which is way old in features and speed...

      BWP

    15. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0

      Right, performance, performance, performance.

      Unless of course, you are talking about REAL load on the server from tons of users. Then performance from MySQL goes to hell, and Postres keeps on chugging right along.

      MySQL is for lightweight jobs or/with lightweight user. Otherwise, use a real RDBMS

    16. Re:Why not PostgreSQL? by Billly+Gates · · Score: 1
      "....you're going to find that you can almost always do things faster (often much faster) in MySQL"



      Oh, really.

    17. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0


      You guys don't want to hear my answer. But here goes anyway :)

      For now, a large majority of people develop on Windows. mySQL let's you develop on Windows, and deploy on whatever the heck. Postgres is linux only, AFAIK, and therefore does not have what it takes to get market share.

      If Postgres had a Windows version, I would evaluate it, and likely switch from mySQL.

      You can poke fun at me now :)

    18. Re:Why not PostgreSQL? by Badanov · · Score: 1
      PostgreSQL can be imposing to a newbie/hacker, but the permissions are relatively easy. A user, any user, can be God of Postgresql, and any changes including assigning permission ( plain Jane Linux users) are done by God and his group. So it is simply a matter of creating a Pg group, adding the group to users you want to have expanded privilidges, and now you have a group who can use PostgreSQL. All you do from that point is to designate which tables who can access and whether they can select, update, etc.

      Now I will grant you the permissions system seems kind of convoluted, but once you get used to it, it makes good sense to have a user operate the database.

      I really like PostgreSQL, and after years of struggling with Windows databases and being unable to do anything more than watch helplessly as I get table locks, and experience other problems, I bought a PostgreSQL distro which fit the bill for me and my family's company.

      And as soon as I can get clearance to program the scripts to implement it, I will be saying goodbye to the Windows world for good.

      I have tried other open source databases including MySQL. I can't say anything bad about MySQL, (mostly because I couldn't get it set up) except that to me MySQL was every bit as convoluted to setup as PostgreSQL.

      I genuinely wish the good people at MySQL the best of luck with their new version. I will stick with PostgreSQL, however, since I have learned to be familiar with it.

      --
      Dawn of the Dead
    19. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0

      That's what the middle tier is for. Server CPUs aren't fast enough to do most of the work for every client.

    20. Re:Why not PostgreSQL? by hookcode · · Score: 1

      It's just not supplyed by many web hosting companies... But MySQL usually is.

    21. Re:Why not PostgreSQL? by ddriver · · Score: 1

      I agree. If there were a windows version of PG I would be all over it. PG/Apache/NT4 sounds like a truck of a web server to me.

      --
      I found my inner child, then I got caught abusing it...
    22. Re:Why not PostgreSQL? by Eric+Savage · · Score: 1

      While performance tests can be valid, you really need to do them yourself. A minor variation can make the results of a test completely inapplicable to your situation.

      While I'm not planning on responding to the standard "postgres is better than everything at everything" posts, I thought of a point that would apply to my post.

      Mysql was built for performance and they added features when and where they did not compromise that goal. Postgres was built for features and optimized performance when and where features were not compromised. For this reason mysql will likely always be behind postgres for features, and the opposite for performance.

      Also when evaluating something that is as critical as a database server, make sure to consider the history of the product. I'm not going to trust the claims of increased performance in the latest version of any software any more than I would trust the stability of new features.

      --

      This is not the greatest sig in the world, this is just a tribute.
    23. Re:Why not PostgreSQL? by Eric+Savage · · Score: 1

      "tens of thousands of queries per second 24/7"

      Sorry, I thought that would qualify as a REAL load. And I'm guessing that 1000+ external connections to the system per second might qualify as "tons" of users?

      --

      This is not the greatest sig in the world, this is just a tribute.
    24. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0

      you sir are overrated. You obviously don't have any real experience. Why don't you shut up and let the grownups talk.

    25. Re:Why not PostgreSQL? by Anonymous Coward · · Score: 0

      Mysql was built for performance and they added features when and where they did not compromise that goal. Postgres was built for features and optimized performance when and where features were not compromised. For this reason mysql will likely always be behind postgres for features, and the opposite for performance.


      stunning deduction you nitwit.

    26. Re:Why not PostgreSQL? by bovinewasteproduct · · Score: 1

      I already use PostgreSQL and it is plenty fast for the sites running it.

      The reason I was asking is that I DO NOT know how to tune a MySQL system, so I could not do a fair test..

      BWP

  47. Re:OSS fortune! by Anonymous Coward · · Score: 1, Insightful

    3 = Sell support contracts

  48. Query caching here we come by Anonymous Coward · · Score: 0
    Query caching here we come

    Be careful about this. Some areas, like San Francisco, actually prohibit good ol' boys from coming in and catchin' their Querys. Even in the south, some areas like Chappel Hill only allow Catchin' Querys on a catch and release program. Bummer.

  49. Re:Apparently 90% don't need those features....... by MisterFancypants · · Score: 4, Insightful

    MySQL used to be significantly faster than PostgreSQL, mainly because it COULD be faster because it didn't have to worry about pesky features like transactions. Now that PostgreSQL has been better optimized and MySQL actually has some (a couple anyway) of these more advanced features, the speed difference is not a factor anymore. Now I think it is just a matter of inertia -- since MySql had such a long run, getting people to change is hard.

  50. Re:Uhm, PostgreSQL by kyrre · · Score: 2, Insightful

    Why the hype around MySQL when Postgres has all those features ready for primetime.

    MySQL is easier to install on a Windows machine is my guess. I know thats the reason my group went with mysql on a project last year. We could not require that our customer installed a Linux (or similar) server.

  51. Nope the speed thing is still an issue by rtscts · · Score: 5, Informative

    MySQL doesn't "have these features" - some table types "have these features." The same MySQL server can use any of MyISAM, BDB and InnoDB tables; the difference is MyISAM doesn't have transactions, but it's twice as fast as InnoDB which does.

    1. Re:Nope the speed thing is still an issue by Anonymous Coward · · Score: 0

      exactly. as always, it's all about choice: (fewer features + more speed) or (more features + less speed) and several in between. I look forward to mysql and postgres increasing in both feature set and speed.

  52. Re:Uhm, PostgreSQL by eyeye · · Score: 2, Insightful

    I really want to use postgresql but i've tried it and its really unfriendly to use.
    Maybe i'm dumb but dumb people need databases too :-)

    --
    Bush and Blair ate my sig!
  53. PostgreSQL installs fine on Windows... by JohnDenver · · Score: 1

    Now, I'm not sure if the middleware/library support is the same, but PostgreSQL runs pretty well on Windows.

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
    1. Re:PostgreSQL installs fine on Windows... by Anonymous Coward · · Score: 1, Informative

      The current implementation of PostgreSQL on windows is based on cygwin and isn't exactly said to be stable under higher loads. However, a native port should arrive with 7.4, which hopefully gets out around August.

  54. No brainer? Are you dumb? by Anonymous Coward · · Score: 0
    Now, look at the costs. Oracle - an Arm, leg, and your children. MySQL - Free. Gee, that is a no brainer.....

    lets see, which DB is ACID-compliant? Whch supports relational operations, foreign keys, views, subselects, etc?

    That's right, the answer is "not mySQL." Now go back to your toy databases and let the rest of us get some work done. No brainer indeed....

  55. Project Stats by Skevin · · Score: 3, Informative

    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?

    --
    "Twice half-assed makes an ass whole." --Solomon K. Chang
    1. Re:Project Stats by Anonymous Coward · · Score: 1, Interesting

      Very interesting indeed!

      It would be great if you could provide a bit more detail so others won't accuse you of configuring Linux/MySQL to perform at a crawl.

      What exactly is the non-Windows OS are you dual-booting to? Assuming a Linux distro, what version of the kernel? What version of gcc was used and with which optimization settings? How large is your swap file & what file system did you use on that and on the other partitions? What are the optional file system options you're using?

      Also, its possible that having compression enabled on the Win2k/XP could impact performance (especially on very fast processors). Also, the way the OS had cached some of the disk to memory can hugely impact performance--in other words, there are factors other than database itself that could heavily impact the benchmark results.

      BTW, I'm not a MySQL fan. I happen to prefer PostgreSQL 7. Its just that I've seen other benchmarks comparing databases without considering relevant factors (which led to skewed results in favor of MySQL over PostgreSQL especially when PostgreSQL was running with default conservative performance/reliability settings).

    2. Re:Project Stats by zm · · Score: 2, Interesting

      I question the relevance of index creation benchmark. In most cases, index creation is done once and then it all just works with that index. Could you provide benchmarks for some big multitable select, update and calculations (averages, sums and that stuff)?
      Same goes for unindexed select: avoid it, and give us indexed benchmarks.

      zm

      --
      Sig ?
    3. Re:Project Stats by Anonymous Coward · · Score: 0

      hmm. what a suprise. an enterprise quality db beats out a free db.

      no knock on free software ... i randomly commit diffs to fbsd and obsd.

    4. Re:Project Stats by topham · · Score: 1


      If you aren't using any indexes whats the point of using MySQL???

    5. Re:Project Stats by Skevin · · Score: 1

      > What exactly is the non-Windows OS are you dual-booting to?

      SuSE 8.1, which, I might add, I think is crap compared to SuSE 8.0. Why did they have to go and break so much?

      > Assuming a Linux distro, what version of the kernel?

      2.4.20. I always recompile for the latest and greatest...

      > What version of gcc was used and with which optimization settings?

      Actually, I just installed the RPMs...

      > How large is your swap file & what file system did you use on that and on the other partitions?

      1.5G for my swap. I'm using ReiserFS on my Linux side, and NTFS on the Dark Side.

      > Also, its possible that having compression enabled on the Win2k/XP could impact performance (especially on very fast processors)?

      Nope. No compression.

      Solomon

      --
      "Twice half-assed makes an ass whole." --Solomon K. Chang
    6. Re:Project Stats by Skevin · · Score: 1

      Timewise, it's too expensive for me to wait when inserting new records/quotes into the StockQuote table: ~7500/day. So it's easier to drop them all into a temp table, and dump the entire thing into the main table over the weekend when the Market is closed. Technically, most any index will need to rebuild itself when new records are added anyway.

      Too expensive? Well, that brings us to your next question: benchmarks. Believe it or not, the project now writes its own queries! It took me a while, but I'm using the genetic programming approach: I have a huge table of random Python script fragments, and a not-so-huge table of bots that represent combinations of those script fragments. Combinations of script fragments determine a bot's buying and selling habits... and when certain criteria are met, determine reproduction habits. When these bots have kids, I introduce a certain level of mutation... either borrowing Python code from the more successful investors, or adding their own rules to the total pie. I currently have 14M bots buying and selling against real market data. At worst, a single bot takes as much as 10 minutes (worst case scenario) to make his purchase/sales decision for the day. On a 2GHz P4, I'm falling behind the real world, fast. Any catch-up work needs to be done on the weekend.

      In a nutshell, I've ended up putting together a python script that assembles SQL queries that assembles other Python scripts that builds yet more SQL queries which then act upon the results. Unfortunately, like most genetic programming, even the most efficient bots have a lot of junk code that could stand a fair amount of optimization.
      As a result, some very strange rules have crept into code of a few investors:
      - Do not purchase any stocks whose symbols begin with M.
      - Buy IPO shares only if they open x number of points.

      Anyway, I'm getting off topic. I'll just send you indexed benchmarks as soon as I move some of the bot investors to my windows side (a nice nontrivial task in of itself): they had a tendency to evolve their programming independently of each other, and I highly doubt any two from either database are exactly alike.

      Solomon

      Solomon

      --
      "Twice half-assed makes an ass whole." --Solomon K. Chang
    7. Re:Project Stats by Skevin · · Score: 1

      Heh, I was waiting for my indices to rebuild on another table while I was writing that last post.

      Solomon

      --
      "Twice half-assed makes an ass whole." --Solomon K. Chang
  56. FYI on Pg Replication Re:Triggers? by Anonymous Coward · · Score: 0

    The word on the grapevine is that Pg 7.4 will have a standard, out of the box replication mechanism. There's some stuff in the 7.3.x tree for this but for now it's all development-only, there are two "competing" mechanisms akin to the linux 2.4 VM situtation...

  57. ON DELETE CASCADE by nslu · · Score: 1

    In most cases when you need to do multi-table delete, this should be done with ON DELETE CASCADE rule (welcome to real *relational* databases). Which is also present in MySQL 4 -- very good!

    Same for updates -- ON UPDATE CASCADE.

    Manual multitable updates could be very handy, though...

    1. Re:ON DELETE CASCADE by Troll_Kamikaze · · Score: 2, Funny

      welcome to real *relational* databases

      Easy there, you'll scare the puppy.

    2. Re:ON DELETE CASCADE by nslu · · Score: 1

      will scare him shitless, then rape him, then kill him, then cook him and eat him. let's go.

  58. Re:VIEWS! I said VIEWS, son! by aled · · Score: 1

    And you can use it for commercial projects for free, unlike MySql and MSSQL.
    We too are migrating from MSDE (MSSQL embedded) to firebird. No problems so far.

    --

    "I think this line is mostly filler"
  59. So offtopic now ... by Greedo · · Score: 0, Offtopic

    "aluminum" uses both hands (all the right except the "a").

    Now, how about "typewriter"?

    --
    Tuus crepidae innexilis sunt.
  60. Re:VIEWS! I said VIEWS, son! by arf_barf · · Score: 1

    Win32 or Unix?

  61. Re:VIEWS! I said VIEWS, son! by Troll_Kamikaze · · Score: 1

    While much of my work can be done in MySQL, until there are views I cannot switch completely from SQL Server 2K.

    Why the hell would you even try to switch to MySQL from MS-SQL when there are such open source offerings as SAPDB, PostgreSQL, and Firebird? Oh well, I hope you enjoy the wait for MySQL 5.1.

  62. Re:VIEWS! I said VIEWS, son! by Java+Ape · · 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. . .

  63. MySQL 4 is good by chrysalis · · Score: 5, Interesting

    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.

    --
    {{.sig}}
  64. Just how much faster than Postgresql is it really? by The+Bean · · Score: 5, Informative

    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 ?

  65. Re:VIEWS! I said VIEWS, son! by aled · · Score: 1

    Linux and windows 2000, but we used it more on linux.

    --

    "I think this line is mostly filler"
  66. Re:Just how much faster than Postgresql is it real by Anonymous Coward · · Score: 0

    This is like ext2 vs. ffs. One is safe, one is fast. A lot of speed is gained by running things multiple time so the optimizer has a chance to do the work. Views and stored procs can also speed things up.

  67. PostgreSQL name change? by cpeterso · · Score: 2, Interesting


    Maybe PostgreSQL justs a name change and a new PR department. Many people don't even know how to pronounce PostgreSQL. Consider the name's awkward evolution: Ingres --> Postgres --> PostgreSQL. They've already got a decent logo (the blue elephant). Presumably, the elephant never forgets your data?

    Looks like the PostgreSQL team is taking an active role to update their PR: A Call for PostgreSQL Case Study Participants

    1. Re:PostgreSQL name change? by NightHwk1 · · Score: 1

      Of course most Americans cannot pronounce "Ingres" correctly either. Seems like a bad starting point for a database name.

  68. Maybe this will get as much acceptance as Apache2! by pheph · · Score: 1

    read: especially as it concerns web sites, its hard to get users to upgrade from a good or engrained product...

  69. Re:Apparently 90% don't need those features....... by keith73 · · Score: 2, Insightful

    If it does the job, why switch. If I ever find MySQL can't handle something that I need to do with an app, then I will certainly start looking at Postgres. Right now, I'm not concerned with a lot of the features that postgres has. I'm using it to do simple table queries in small apps. I first started using it because that's what the hosting company had installed on my web server. So I used it. I've been using it ever since because I haven't had any problems with it. - keith

    --
    -- Does anybody know where the 'any' key is on the keyboard?
  70. Re:VIEWS! I said VIEWS, son! by arf_barf · · Score: 1

    What kind of a driver do you use?

  71. Re:Uhm, PostgreSQL by pbrammer · · Score: 1

    The hype around MySQL is that it is quite fast and more than adequate for most Web applications. Why would I want the bloat of PostgreSQL (or other "primetime" database) when MySQL does the job well?

    Many people seem to misunderstand the goals (in my opinion) of the MySQL team. They aren't there to compete with Oracle, for instance. Their database was designed to have a small footprint, work extremely fast, etc... For most of my Web applications, I don't want a full-featured database - there is just too much stuff to get in my way.

  72. Re:Just how much faster than Postgresql is it real by Anonymous Coward · · Score: 1, Informative

    Are you running both MySQL and PostgreSQL with the same optional constraints?

    For example, what startup settings (optional parameters) are you using for PostgreSQL?

    By default, PostgreSQL uses very conservative settings that favor reliability over speed (like not buffering any writes to disk).

    Just flip one or two simple switches in the startup parameters and you might find HUGE speed boosts in PostgreSQL because it would be running under similar constraints as MySQL.

    Also, are you using PostgreSQL 7.3.2 or an older version? The 7 series gained a lot of optimizations...

  73. Re:Apparently 90% don't need those features....... by mbrod · · Score: 1

    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.

    If you are coding against MySQL with Perl it is always just as easy to do what the trigger or stored procedure will do for you in code in a very short amount of time. That is why none of the real users of it could care less about such features.

  74. Re:VIEWS! I said VIEWS, son! by Alien+Being · · Score: 1

    I'd be satisfied if mysql supported just the easiest cases of views. i.e. no update/insert/delete, no joins. I'd still gain the abilities to restrict the set of rows/columns which can be seen by certain users, and to group similar tables (using UNION).

  75. Idiot moderators! by Anonymous Coward · · Score: 0

    Are moderator points awarded for stupidity? Too often when you see a comment from a registered user that has a score of +3 or greater, it is dead wrong. Wrong, like the parent post. Why would a moderator give it a +4? The binary MySQL distributions all use static libraries. How could this be the difference between the two? Hey poster, how about RTFM before spouting nonsense? Hey moderators, how about RTFM before making asses of yourselves and making /., yet again, a little less useful.

  76. Re:Uh, Oracle? QWZX by Anonymous Coward · · Score: 0

    Since when does Postgres support hot backups? Reference?

  77. Re:Just how much faster than Postgresql is it real by nconway · · Score: 1
    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


    There's really not enough information here to help you out very much: database optimization is a complex task. However, the PostgreSQL mailing lists (such as pgsql-performance) frequently handle questions about performance tuning -- if you'd like to improve the performance of PostgreSQL for your application, my suggestion is to post more details about your particular configuration and workload to one of the mailing lists.



    However, two easy tasks you can do to improve performance are too tweak the configuration (for example, increase the default shared_buffers setting), and upgrade to the llatest release of PostgreSQL (7.3.2 is current).

  78. paying for features? by sirshannon · · Score: 1

    I wanted views, stored procedures, triggers, etc. I wanted them badly enough to pull out my wallet and finance them. I wrote a check to Microsoft and bought MS SQLServer 2000.

    1. Re:paying for features? by dash2 · · Score: 1

      ROTFL. Mod this up!

  79. Re:Apparently 90% don't need those features....... by Anonymous Coward · · Score: 0

    MySQL makes a fucking awesome, free, fast as shit persistence layer for people who need to store data in tables. If you want all that other shit, use something else. In a real app I was working on (using JDBC), we were developing on MSSQL cause that was company policy. Switching the other end of the JDBC connection to MySQL and changing the driver to org.gjt.mm made the app roughly 2X faster. No recoding at all. We had tried I think 3 JDBC drivers for MSSQL and had gotten vastly different results, so that's probably a huge part of it, but for someone who needs to use some sort of code to store large amounts of tabular data and access it quickly (in our case, it was actually the insertions that were grossly faster) without using a lot of other features, MySQL is a really great product.

  80. Uh oh, the Boss by Anonymous Coward · · Score: 1, Funny

    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. ;-)

  81. Re:Apparently 90% don't need those features....... by Trifthen · · Score: 5, Interesting

    We run postgres and we're doing our damndest to get rid of it. We have some databases that get 50-100% data turnover rate daily, making hourly vacuums essential to not having the Ever Expanding Database problem. Not to mention that vacuum doesn't clean up indexes, so you'll also have to re-index periodically if you don't want those to grow to thousands of times their optimal size.

    I should probably say that such reindexes require full table locks, so you could get contention issues under heavy load when reindexing your database. Mysql gets by this by making indexes in a temporary space, and switching when the index is done. This means I can select from a table, with full benefit of an existing index, even while I change an index, or even redo the index. Not that I have to... mysql doesn't require vacuum or reindex to avoid continuous linear bloat.

    So... we don't like having to babysit our database to get good performance out of it. We're willing to work around lack of foreign keys to avoid having to do full database import/exports on a weekly basis, and multiple hourly cron jobs to make sure we don't randomly fill our disks. Faster? Slower? Who cares. Postgres is just too annoying to use in production.

    --
    Read: Rabbit Rue - Free serial nove
  82. just curious by Hollins · · Score: 1

    where do you get your data from? Is there a single, free place to download price data for every NYSE and NASDAQ stock since 1980?

    1. Re:just curious by Yankovic · · Score: 1

      I'd love to find this out as well!

    2. Re:just curious by pHDNgell · · Score: 1

      I did a similar project a while back with postgres.

      I downloaded all of the data from yahoo's stock quote thing.

      --
      -- The world is watching America, and America is watching TV.
    3. Re:just curious by Skevin · · Score: 1
      Ah, well, let's start with the basics... you can get all the NYSE and NASDAQ symbols at http://www.allstocks.com.

      As for the quotes themselves...
      Here's the quick and dirty approach - it's the user-friendly version.

      For those of you feeling a little more bold, and programmatic, you can also point your browser to table.finance.yahoo.com/table.csv... even though it ends with the extension .csv, it's still dynamically parsed server side. You need to pass in the following querystring variables:
      • a the month, represented by an integer, 0-based ordinal, so February would be number 1.
      • b the day, represented by an integer, 1-based ordinal.
      • c the year, as a four digit interval.
      • s the symbol of the stock. Almost all NYSE and NASDAQ symbols are represented. (see below)

      Be warned, you'll be hard-pressed to get any stock quotes before the late 1980's through this method. I had to grease a few palms at Morgan Stanley and Wedbush Morgan to complete my list, and boy, is my nose brown and my tongue covered with loose shoe-polish.

      Also, for some reason, Yahoo does not list these symbols:

      anbprc abnpra abnprb acepra acepri asx aesprc amgpri atgpr agupr seppr seppra alpprn alppro arepra areprb alnprd alepr atpr ambpra aopra aeepre aagprt aeppra axppra afgprt agcprb agcpra acppr anupr anjpr aivprp aivprq aivprr aivprc aivprd aivprg aivprh asnpra asnprd abwpra aecpra civprc avbprd avbprh avapra ekppr bacprw bacprv bacprx sbppra bxspra bwepr oneprj onepru oneprv oneprw oneprt bacpry bgiprt bufprc bcbpr baxpr bbvprb bvgprc cthprb bpcpra bscpry bscpra bscpre bscprg bscprf bscprx bbcpra grpra bgepra btt bkprd bkpre boypra brepra breprb bmypr bsfprf bsfprg bsfprh bsfprj bsfprq csdpra cpepra ccjpr cofprc aceprb cmopra cmoprb ccmpr creprb creprc creprd cbg cblpra cblprb cxwsb cnpwi cntpra cerpr ctlpra chkpr ccppra cqbws chzpra cbpra cinpra cinpri ccwi cihpra cprs cprw cprx cprv cprz cprf cprg cprh cprm cznpr cvepr cveprl cvepru cmsprm cnfprt cgpprt clpr cnbpra clppra clpprc cweprt cmaprz nnnpra riopr cbgprc cagprb edprc edpra cmsprj cmsprb cmsprk cmsprl cmsprn cmspra tcrpr ofcprb ofcpre ofcprf cxwpra cxwprb cpzpra ceipra ceiprb cmmprb cmmprf cmmprg cwnpra cw.b civprd ddrprf ddrprc ddrprd dmgpra dpra dpru dteprb dtepra dukprt dukprq dukpra dukpru dukprv dukprw drepre dreprd drepri ddpra ddprb dqpra dqupra dquprb dquprc dquprd dqupre dquprg egppra eixpra eixprb eppra epprc edspri edeprd ecapra eaipra egspra gsuprb gsuprg gsupre gsuprd lplprb pegprs pegprr eprpra ennpra eopprb eopprc eoppre eopprf eopprg eqrprb eqrprc eqrprl eqrprd eqrprh eqrprg eqrpre esbprb esbpra repra fnmprh fnmprj figpra figprb fjcpra fnmprf fnmprg fnmpri frtpra frtprb freprb freprd freprg freprh freprf fchpra fchprb fiapr fiapra fbaprt fbppra fbpprc fbpprd fbpprb frprc frprd frpre furpra fbcprp fbcpro fbfprj fltprh fltpri fbfprk fbfprl fbfprm fltprg ffs.a fprt fprs fopra fpcpra fplpra fplprb freprm freprl freprq freprp freprn frepro freprr freprk fcxpra fcxprb fcxprc fcxprd fmtpr fmspr fwcpra glrpra glrprb gblpri gabpr gabprb ggtpr gbppra itprb gmtpr gampr ggppra gpepra gpeprw gtypra gty.t glbpra grtprb grmpra gtn.a glpra gxppra gxpprd gxppre gef.b gupprb gupprc hmyws hbcpr higprq higprc higpra hlipra hliprb heprs hcppra hcpprb hcpprc hcnprb hrpra hlprb heprq heprt hei.a hnzpr hpcpra hiwprb hiwprd cnppra hmeprf hptpra hptprb hmtpra hmtprb hmtprc hiprt hiprp hiprx hiprv hiprf hiprh hiprn hiprs hiprg hiprm hipro hiprz hipre hrpprb hrppra hbaprf hbaprd hbapre ias idt.c idt.b ifcprp ifcpro ifcprn npre ndepr ingpra ingprb kpapra ifcprm sfiprb sfiprd sfiprc jypprz jdnpra jyppr jm jpmprj jpmprn jpmprl jpmpra jpmprh ksupr kltprt ksepra kimpra kimprb kimprc krtprd lgpra lqipr lhopra lshpra lxa lehprj lehprc lehpri lehprd lehpre lmc.b lncprz lncprv lncpr ltcpra ltcprb ltv mgaprb mxg krbprc krbpre krbprd krbpra krbprb mkc.v mcnprs

      --
      "Twice half-assed makes an ass whole." --Solomon K. Chang
    4. Re:just curious by Skevin · · Score: 0, Offtopic

      Okay, something weird is happening. I cut and pasted www.wedbush.com into my browser, and somehow, slashdot replaced it with "webbush", a porn site. It was a straight cut-and-paste, so something is going on with ./'s server... Taco, someone, please check into it...

      Solomon

      --
      "Twice half-assed makes an ass whole." --Solomon K. Chang
  83. Re:Maybe this will get as much acceptance as Apach by noda132 · · Score: 1

    its hard to get users to upgrade from a good or engrained product...

    Try the upgrade before saying that. Unlike Apache2, the upgrade is painless. Though you MAY have to recompile your user-defined functions (which 99.9% of people don't use anyway), I'm not sure.

  84. Re:Apparently 90% don't need those features....... by Ed+Avis · · Score: 1
    If you are coding against MySQL with Perl it is always just as easy to do what the trigger or stored procedure will do for you in code in a very short amount of time.

    Stored procedures run inside the database server. This means they can be hella fast (compared to doing the same operations externally by sending SQL and results back and forth). Also the language for stored procedures (Oracle's PL/SQL or Postgres's PGPLSQL or whatever it's called) can be typechecked against the database schema, so you get immediate notification if you try to add a stored procedure that uses invalid column names or whatever. Finally, the code for stored procedures can be compiled just once and then stored as bytecode inside the database.

    Really it comes down to: trust the database developers. They have very long, grey beards and they know all sorts of stuff about making things run quickly, so if they have gone to the trouble of implementing a programming language that runs inside the RDBMS you can be pretty sure it will give better performance, and possibly better error reporting, than doing the same job with an external language and a database access library.

    --
    -- Ed Avis ed@membled.com
  85. Re:Uhm, PostgreSQL by Ed+Avis · · Score: 1

    Yes, it's good that there is a small, easy-to-set-up database that may not have all the features of Oracle or Postgres or DB2, but is good enough for many applications.

    What's annoying is that every time MySQL adds some new feature which real RDBMSes have had for a long time, it gets lots of hype and publicity, while free databases which already full ACID properties (I think this means Postgres nowadays, and most likely SapDB too) don't get nearly as much coverage.

    Perhaps this is a case of more joy over one sinner who repents, than...

    --
    -- Ed Avis ed@membled.com
  86. What the MySQLer's dont understand by esconsult1 · · Score: 5, Insightful
    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.

    1. Re:What the MySQLer's dont understand by LinuxXPHybrid · · Score: 1

      One of the biggest reasons why people go for MySQL is probably support. PostgreSQL now has 24 hour phone support, provided by Digital Distribution GFS P/L and that's great, but MySQL provides support while MySQL (the company) makes the product. Also they've been running profitable business for the last several years. Also a company like Sun supports MySQL (if you buy their luxury computer). That really makes business feel secure and that's big.

      Support is very important. There is a commercial software vendor (not an organization) working on a product; that's also very important. Look at FreeBSD and Linux. Is Linux so much better than FreeBSD? Maybe, maybe not. One thing that I know is that there is Redhat. There's Suse. IBM invests in Linux. Sun also ships their low end servers with Linux installed. Oracle is also investing in Linux. This is huge. How about FreeBSD? Yahoo is using; well, that's great, but does Yahoo help you cluster FreeBSD? I don't think so.

  87. Faster than a speeding ticket, but... by leonbrooks · · Score: 1
    MySQL has always been the speed leader in Open Source databases.

    Now there's an opening begging to be taken! (dons his asbestos undies)

    MySQL has only ever been shown by anyone but MySQL AB* to be faster at very simple mostly-or-all-read-only tasks, even with row-level locking. PostgreSQL, for example, multiplexes writes - which effectively removes even row-level-locking delays. As soon as you pile on the load, get complex in your queries, or start doing a serious amount of writing, the bencharks go all wahoonie-shaped.

    On top of that, innoDB is a bandaid to try bringing real SQL features to MySQL, which leads to two observations:

    • MySQL proper is misnamed (it's not SQL, certainly not complete ACID, only a SQL subset); and
    • even with innoDB its repertoire of ACID features is incomplete

    I'd also be interested in seeing Firebird and SAP DB in any benchmarks done. And MS SQL Server, if you're in a place where the NDA-style thou-shalt-not-publish-benchmarks EULA clause doesn't matter. I do like choice, but most firmly believe that some of the attention falling on almost-GPL MySQL would be better spent if devoted to some of the more capable really-GPL alternates.

    * now who (M<cough>ro<cough>t) does that remind you of?

    --
    Got time? Spend some of it coding or testing
    1. Re:Faster than a speeding ticket, but... by Billly+Gates · · Score: 1



      For comments who claim mysql was always the speed winner, take a look at this.

      Its outdated and includes mysql 3.2.0 and postgreSQL 7 but it does give you an accurate picture about how postgreSQL traditionally performed as a RDMS. Mysql was originally designed as a fast sql filesystem for certain apps. All the mysql sponsored benchmarks are for simple operations.

      If you write a simple script to nail a database via sql mysql will perform better. If you write a complex script or use it as a RDBMS then PostgreSQL will quickly scale up.

      Most opensource hackers just write a simple script that only test inserts and they see mysql flying and assume its superior.

      I am not sure about mysql 4. I wonder if it can handle alot of parrallel que's. PostgreSQL can and I view it as a similar argument as scsi vs ide. Ide is just as fast if not faster if the hard drives are the same. But as soon as you stop doing simple benchmarks and use it as a server scsi quickly takes over as a performance king. EIDA is improving thanks to DMA and PIO modes and raid support but doing things in parallel is not one of them.

      Again my benchmarks are old but they give you a good idea about how features can impact performance as well as motivate the mysql team to improve mysql.

    2. Re:Faster than a speeding ticket, but... by Billly+Gates · · Score: 1

      Oops forgot the link. Take a look at this.

  88. Question by PyroX_Pro · · Score: 2, Interesting

    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?

    1. Re:Question by Anonymous Coward · · Score: 0

      Sure, you can hard code that SQL right into a function of your program, then deploy that program to a couple hundred clients. Oh wait, that's the boss, he wants the query slightly changed. Enjoy redeploying that app, I'll just modify the view and the change takes effect immediately. Don't even have to restart the app.

    2. Re:Question by Alien+Being · · Score: 1

      With a view, you can restrict access to certain records.

      CREATE VIEW public_view AS
      SELECT * FROM foo WHERE bar=baz;

      GRANT SELECT ON public_view TO PUBLIC;

    3. Re:Question by PyroX_Pro · · Score: 1

      Well, if your applications are designed properly to begin with, they would use an include file for things like database calling functions. One change in one file, then copied to the other locations, and you still have to restart nothing.

      By the way, what are these web apps that all use the same query anyway? 10 apps using the exact same query seems like something that would never happen?

      I just do not see the point.

    4. Re:Question by aok · · Score: 1

      Not the best way, but I could understand writing extra code in your program instead of letting the database handle it if this is a web-application with all the code being server-side.

      However, if you are writing client-side apps, then copying that single file you've changed to even just ten people spread across multiple timezones _could_ be a big headache.

      In a fairly large web-app project I just finished, there was also a client-side MS Access-based app that linked to/shared some parts of the database. I was heavily restricted to making even simple modifications to the database because that would sometimes require the Access app be updated and then redeployed to the various users in different timezones. Talk about a huge PITA!

      As for your question on the same query being used...do you mean for the VIEWs? You can still apply conditions to the VIEW's, just like you are querying a table. Also, a VIEW can be worthwhile even if it is used in a single instance of a single application...another poster gave an example dealing with security.

    5. Re:Question by spongman · · Score: 1
      • security
      • abstraction
      • indexed views
  89. Re:Apparently 90% don't need those features....... by Ost99 · · Score: 2, Informative

    Point 1:
    PostgreSQL lacked many of those features just 2 years ago. Did you ever try to use it before 7.0? You had triggers, but no cascading or outer join.

    Point 2:
    It was slower, and you had to recompile (according to the readme) to get it to use more than 32 (or was it 64) simulatious connections. Not that that should be a big problem, execpt for the fact that posrgreSQL had serious problems closing a connection after use.

    Point 3
    (Much) better support for mysql than postgreSQL in PHP. You can argue all you want that php isn't something you would like do develop with, but a whole lot of websites use it.

    Point 4:
    If you already have started using mysql for a project, it is often more work to change DBMS.

    Point 5:
    Most ISPs support mysql if they offer hosting on linux servers, and sometimes on ms servers as well. I've not found one ISP (in Norway) who offer PostgreSQL. Our company ended up looking quite stupid when we couldn't find a ISP who would host the site we had developed for our customer. We ended up having to place a server in a server farm somewhere, and admin the server ourself (this was while posrgres was in a 6.x version, after 2 years we tried again after 7.1 was released, but noone were able to provide it). The universities I've attended or know of offer mysql for all students, and oracle for (some of the) comp students.

    So the 4.0 release are great for all of us who for some reason *have* to stick with mysql for most of our work. I prefer posrgreSQL in most cases, but if it's web related, I don't allways have that option.

    - Ost

    --
    ---- Sig. gone.
  90. NextGreSQL? by axxackall · · Score: 1
    There was a suggestion in their mail lists to rename it to NextGreSQL. Aka Next Generation PostgreSQL. But then they decided to wait untill they will define which features should be inlcuded in that next generation.

    For me, NextGreSQL is much easier to pronounce :)

    --

    Less is more !
  91. Re:Apparently 90% don't need those features....... by Tadghe · · Score: 1

    Why we use Mysql... (and use it for for our customers)

    1. quick, easy setup, with easy to find documentation. While I'm sure this will send (some) people howling... I've not seen documentation to match for PostgreSQL, or SapDB (Firebird's docs seem ok).

    2. Easy to manage. I don't have to stop my mysql db's to do maint on them. (yes, you can do a sorta vaccum on pg with it running, but IIRC, it only actually releases the space if you stop the db and do it, maybe I'm wrong here, but hey, until we can find docs that explain it better...)

    3. Full cross platform support. Doesn't matter if it's windows or solaris, or linux. Mysql runs fine. Last I checked PG only ran on windows with Cygwin. Not an option for production enviroments.

    4. Plenty of easy to use gui's. DBA's love'm.

    5. Support by pretty much every multi-database COTS application we mess with, be it Demarc or the odd php webook.

    That being said, I'd love to get views, full sub selects and joins in mysql, or someone to put a page together that gives the info in an easy googlable site like mysql.com.

    --
    Bugs Bunny was right.
  92. Re:VIEWS! I said VIEWS, son! by Sahib! · · Score: 1

    We may not want them to, but data requirements sometimes change, and views make it really easy not to break everything in your code when making changes to an existing schema. Sure this is still a "convenience," but a significant one at that.

    --

    I prayed about it, and God said, "Don't do it!" But I thought, "I know better."

  93. Re:Apparently 90% don't need those features....... by Anonymous Coward · · Score: 0

    That's why I and most others start using MySQL in the first place. You can keep using it for a long time with no reason to HAVE to switch.

    Of course, then later you decide to learn a new database just to expand your knowledge base. That's when you start whacking your head on the table when you realize how much easier a real relational database could have made your life for the preceding several years.

    It's funny to watch the process. It always seems to follow the same course.

    I left MySQL behind. Once you use a real relational database, you'll never go back to the kiddie toys.

  94. Re:OSS fortune! by Anonymous Coward · · Score: 2, Interesting

    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

  95. Re:Apparently 90% don't need those features....... by pi_rules · · Score: 4, Funny

    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?


    Gimmie a break dude. I'm sick of hearing all this stuff about triggers, sub selects, and stored procedures. I can honestly say that no database really needs these things.

    In my 6 months of professional development at a 3 man shop I think I'm perfectly well qualified to say that no RDBMS will ever need these futures. I can't possibly imagine a design so fubar that it would EVER have to rely on the RDBMS to enforce such rules. That's what application level code is for! Sheesh!

    Well, maybe such things would be useful if you had more than one application pointing at the same database... or if you planned to maintain the DB's integrity over any length of time. But that kind of shit never happens in the real world. It's a made up story of Slashdot posts and database classes.

    Given that text doesn't relay voice inflection very well: The above is sarcasim.

  96. We are currently playing with MySQL... by puppetman · · Score: 2, Interesting

    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.

    1. Re:We are currently playing with MySQL... by ShieldW0lf · · Score: 1

      1) No Subqueries
      2) No Stored Procedures
      3) Why bother, could have stopped at #1

      MySQL is CRUD. Why do I use it? Hosting providers offer it dirt cheap. Any other reason? Um... no.

      --
      -1 Uncomfortable Truth
    2. Re:We are currently playing with MySQL... by bartwol · · Score: 3, Informative

      We've been using MySQL in a production operation for three years, and it's been bulletproof. We've been serving up financial data (50 tables, ~20million rows) in a heavy multi-user environment. We're running it on about 10 boxes right now. Compound indexes work well; everything is fine. My one caveat is that our app is mainly a read-only application which suits MyISAM's weak table locking scheme. However, MySQL 4.0 includes InnoDB which supports transactions and a robust locking scheme that has worked well in my initial tests. I don't know where stability problem reports come from, as we've seen none. FYI: I did several PostgreSQL tests and ran into major query optimizer problems on complex queries against large tables.

    3. Re:We are currently playing with MySQL... by Anonymous Coward · · Score: 0
      how is stability? That's probably what you hear most about w/regards to MySQL

      Anyone who has used Oracle for more than an address book knows how stable it really is. "Can't break it" is a joke; I don't have to break it - it breaks itself with alarming regularity.

      I love it when I open a bug and they assign it number 2 million and something. Makes me feel all warm and fuzzy.

      I've even seen MetaLink, Oracle's support web site (running Oracle) blow up with the same damn SGA leak that I was trying to research. Hah!

      Okay, I'll stop now, but worry-you-not about stability when compared to Oracle. BTW, I am a card carrying Oracle 8i Certified Professional DBA. And a coward.

    4. Re:We are currently playing with MySQL... by Anonymous Coward · · Score: 0

      fud fud fud unless you can backup the optimizer problems with details. How about a bug report as well?

    5. Re:We are currently playing with MySQL... by puppetman · · Score: 1

      Actually, I subscribe to the Postgres mailing list, and I see alot of, "Why isn't this query using the index", or "Why is this query so slow".

      I think every database, however, has query optimizations problems. Oracle has a "hint" that you can put in a query to override default optimization. They wouldn't need that if their query optmizer was perfect.

      Before you start yelling FUD, do some reading. Closed source isn't perfect, and either is open source.

  97. Re:Just how much faster than Postgresql is it real by puppetman · · Score: 1

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

    Selects, updates and a few inserts are 89/35/49?

    What are you running this on? A 486?

    Are constraints enabled? Indexes? How big are the tables (rows AND columns). Why not test all selects, then all inserts, then all updates?

    Spurious benchmarks like these aren't of much value unless some background is included.

  98. Re:Apparently 90% don't need those features....... by Bake · · Score: 1

    Given that text doesn't relay voice inflection very well: The above is sarcasim.

    *phew*, I had almost submitted a lengthy piece of text before I saw that last line. :-)

    Please use the <sarcasm> tag in the future.

  99. Re:Maybe this will get as much acceptance as Apach by realdpk · · Score: 1

    Luckily, in this case, MySQL 3 is not good, so they'd just have to get past the engrained(sic) part.

  100. Re:Apparently 90% don't need those features....... by junkgrep · · Score: 2, Interesting

    Can you explain, in layman's terms, what a "real relational database" actually is? And why MySQL isn't one, and what it would have to do to be one? And NOT by saying "well, it's got to have wvcsde and werdfskfk!" I mean, I don't know too much, but people have got to be able to explain these operations, and the theories behind the data structure, in better ways than most people here are doing, reffering to various features. Not all of us here are geniuses, or work with databases regularly. :)

  101. Re:Uhm, PostgreSQL by Anonymous Coward · · Score: 1, Insightful

    Funny, I use some of those "primetime" databases, and the extra features never 'get in my way'. It's real easy to just not use them when you don't need them. Sometimes I don't use any of the 'fancy' features on some databases, but they are always there, and I end up using them in a lot of cases on things I never would have thought about back when I was MySQL only. When you don't really know what the extra features are/do, it's really easy to believe you don't need them and wouldn't use them. Once you understand them, you can't believe how much easier they make the coding for tons of projects you do.

    Many MySQL users prefer it, just because they don't really *know* what it is they are missing.

    (This abbicus works fine, It calculates all my numbers for me and I don't need any battery packs, AC power supplies, wires. Hmm, maybe I will try that computer thing just to see what it's like..... OHHHHH! I get it!)

  102. Re:VIEWS! I said VIEWS, son! by jot445 · · Score: 1

    Ideally I would design the system in such a fashion that views are not needed. Real World, however, I am stuck maintaining existing systems. I could port those systems to MySQL cheaper (time/dollars) than I could rebuild them correctly.

    --
    The preceding comment has been reviewed and declared to be compliant with HIPPA Phase II regulations.
  103. Re:VIEWS! I said VIEWS, son! by jot445 · · Score: 1

    It's also easy to say that I should use my (bosses) wallet. To whom do I write the check? How much value will I get for $150.00? What is the ROI? My PHB's are hot on my case. Will I see views in MySQL 5.1 if I pay MySQL AB the equivalent amount of the MSSQL7 license and CAL's? Is it worth it to my PHB's? Nope. Not even at half. There is a value to MySQL but that value is far below the "real" value of MSSQL7 when MySQL remains functionally below MSSQL7.

    --
    The preceding comment has been reviewed and declared to be compliant with HIPPA Phase II regulations.
  104. Re:VIEWS! I said VIEWS, son! by Anonymous Coward · · Score: 0

    Distributed partitioned updatable views. It's nice when you have 20 servers that each serve up a single view which has data from each of those servers in one place that permit the ability to update the values back to the originating server. I guess that's a useless feature then. Better to write a half-a-ton of code to do it manually.

  105. Re:VIEWS! I said VIEWS, son! by topham · · Score: 1

    I had the pleasure of arguing what a view was with an Business/Systems Analyst of a company I worked for previously. He kept swearing up and down that Views were basicly stored indexs of query results.

    Our boss had to straighten him out on it.

    But hey, I was just the 'programmer' on the project.

  106. Re:Apparently 90% don't need those features....... by Billly+Gates · · Score: 2, Insightful

    I have used FreeBSD since the linux 2.0 days. FreeBSD was lightyears ahead at the time. I switched back and forth between the operating systems because Linux was more cool and web documentation all touted linux. The Linux distro's were easier to use and more people used them then FreeBSD so I used Linux for awhile as well.

    FreeBSD back then had a better VM( still does), better tcp/ip stack( still does), better package management( still does except gentoo), better scsi support, raid card support, volume management, threading, etc.

    Its not just the proprietary world where this happens. The most popular opensource apps also reign over technically superior ones.

    As mysql gained popularity postgreSQL gained as well. Just not as much. Same is true for FreeBSD. There are a ton of kernel developers for FreeBSD who came from linux and prefered freebsd over linux for a variety of reasons.

    Keep in mind Mysql is faster for simple benchmarks and doing things like inserts. Many hackers simply wrote simple perl scripts to see how many inserts a second both could do and found mysql faster. They then falsely assumed it would also be a superior RDBMS.

    I heard in Japan the situation is the opposite. If you walked into a bookstore you would only see postgreSQL books and few mysql. Hype is a major factor.

  107. Re:VIEWS! I said VIEWS, son! by turingcomplete · · Score: 1

    "a company I worked for previously"

    I wonder if getting your boss to correct people higher up then you on the pecking order had anything to do with that :)

  108. Re:Apparently 90% don't need those features....... by JohnDenver · · Score: 1

    *phew*, I had almost submitted a lengthy piece of text before I saw that last line. :-)

    Me too... :)

    I guess you an me are easily trollable...

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
  109. Thanks by JohnDenver · · Score: 1

    Your reasons especially helped give me a little insight as to why people are choosing MySQL over PostgreSQL and Firebird.

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
  110. Re:VIEWS! I said VIEWS, son! by abirdman · · Score: 1

    Views make it possible to sort out complicated data relationships ONCE (preferably by the most experienced programmer in the house) and then access the results over and over. As long as the view stays valid, any query against the view can be assumed to be valid. The shop where I work (Oracle 8.1.7, I think) has very complicated OLTP data structures--great for keeping everything sorted out during transaction processing, but abysmal for reporting. We have some views that use 20 or more tables with complicated sub-selects, computations, unions, and validations. If we had to rely on the coders to get that stuff right for every report or query request that came into the department nothing would get done. With a view, the report writers just query the views for their data. It's not always blisteringly fast, but at least we don't need Einstein to code every simple data or report request that comes down the pike.

    Your point about views-on-views-on-views bogging things down is well taken. Using just a few well designed views and enforcing their use will at least allow the DBA/Data Architect/Programmer to find the right target for optimizing.

    As far as their necessity in MySQL, views are a huge help for inexperienced people to get complex data into simple and usable form. If the data structures are simple to begin with, and if there's no access to the data outside of the application it's created and stored in, or if the programmer has already supplied all the outputs that are required for the application, then views are superfluous. Otherwise they can be a real time-saver and save a lot of programmer time/aggravation/skill.

    --
    Everything I've ever learned the hard way was based on a statistically invalid sample.
  111. Re:Just how much faster than Postgresql is it real by bad-badtz-maru · · Score: 1


    As a postgresql user, one thing I did notice is that postgresql uses the old one-process-per-connection style of daemon whereas mysql uses threads. Postgresql tends to fall apart under high connection concurrency whereas mysql might not due to its use of threads.

    maru

  112. Re:VIEWS! I said VIEWS, son! by topham · · Score: 1

    No. :)

    Wanting to work for people I didn't have to correct had everything to do with it.

  113. Re:VIEWS! I said VIEWS, son! by Anonymous Coward · · Score: 0

    You allegedly an Oracle DBA and don't understand the usefulness of views? Ok, I will now assume you are some junior level flunky who happens to report to somebody who manages the real Oracle DBAs. Have you ever heard of a materialized view or in your "fantasty" dba world do you just not really understand the database you purport to administer. I'm sorry, but I can't really take you seriously when you make such an ass-backward, uniformed statement. Either you have now clue about how Oracle really works, or you are a liar. Either way, I don't care. You are a clueless nitwit who should go back to administering Microsoft Access and MS SQL Server. And "Java APE", what kind of dba would use that as their username? No Oracle DBAs I know. Please find a job outside of IT you clueless moron. In case you are wondering, this post is brought to you from somebody who has actually administered Oracle versions 7 - 9. Please go to hell, you go to hell and you die...

  114. Re:VIEWS! I said VIEWS, son! by Anonymous Coward · · Score: 0

    Mother bastard, I'm too drunk to spell correctly. Please excuse my spelling in the parent post, but if you had consumed two liters of 11% beer you would understand...

  115. Re:OSS fortune! by Anonymous Coward · · Score: 0

    You are a FUCKING moron.

    Why ?

    Because one can use and MODIFY any GPL software
    till one goes mad. GPL allows modifications
    WITHOUT requiring REDISTRIBUTION.

    It is only IF you modify GPL code AND you
    redistribute your modified code, THEN you
    have to publish the source for your changes.

    DO YOU UNDERSTAND THE DISTINCTION ?

    So, yes, I can use and modify and emasculate
    the GPL'ed JDBC driver to my hearts content
    as long as I use it within my company. If
    I redistribute the driver, THEN I have to
    make my changes public. But I and most other
    companies are not in the business of selling
    JDBC drivers so why would this be an issue ?

  116. Re:Apparently 90% don't need those features....... by Anonymous Coward · · Score: 0

    No recoding? You had constraints and triggers and you hadn't even used them? Good thing employers can't identify you from that admission.

  117. Re:Apparently 90% don't need those features....... by Anonymous Coward · · Score: 0

    They're mostly about consistency--there are certain changes nobody can make (no matter who wrote the client code) because the resulting database state doesn't make sense. Some canonical examples:

    • Transactions: When moving money from my account to yours, keep any other client from seeing the changes while they're half-finished, and make sure one change can't ever be stored if the other fails somehow.
    • Foreign keys: Ensure every employee has a manager ID that belongs to a manager that actually exists.
    • Triggers: Create an accounting record whenever a manager is added. If a manager has employees, is deleting the manager an error (the default) or should the whole department (and the accounting record) be deleted?
    • Views: Pre-compiled queries that can be cached, and can have different authorization requirements than the tables they use.
    • Subselects: I don't use this much, but the idea is to use the result of a SELECT inside the body of another query, instead of shipping all that data to the client and back in a second query.
  118. Duh by krumms · · Score: 1

    'Cause Windows sux0r. :D

    *tries to hide bulky XP and 98 packaging from unforgiving /. masses*

  119. If you're so happy... by boots@work · · Score: 1

    why don't you pay them, ya bastard? :-)

  120. Re:Apparently 90% don't need those features....... by Anonymous Coward · · Score: 0
    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.

    I'll tell you why I prefer MySQL. First and foremost, it has a reputation for being very fast, very easy, and very reliable. Not "very fast as long as you're don't get a lot of traffic" but "very fast, even on big-ass sites with tons of traffic, like Slashdot." Eweek did a study that showed MySQL kept pace with Oracle. That's pretty fucking convincing.

    But there is another reason: I'm tired of "real DBAs" hijacking every MySQL story with rants about how MySQL isn't for "real work" and isn't a "real database." We got it. We heard it 100 times during all the previous MySQL stories. You guys sound jealous that all these Web sites are successful without your "real database" and your "real DBA" salary. I don't want to deal with a bunch of whiners. That's too much baggage for a "real" database.

  121. Re:Apparently 90% don't need those features....... by Khazunga · · Score: 1
    I'll bite...

    1. Docs here. Everything you need is there. Install is straightforward in most distros, and very simple to do from source if you have the inclination to do it.

    2. Wrong assumption. You can do whatever maintenance tasks you want without stopping the db. It's been like that since at least 7.0.

    3. Nice point, if it affects you. Postgresql isn't native windows yet (it's in beta stage). It runs on all other unices, however...

    4. Plenty of those for pg. It's not a problem.

    5. This is a crying shame, because if apps used SQL'92 you'd be free to choose database. If an app requires MySQL, then you *need* MySQL, and the whole RDBMS choice problem can't be placed.

    --
    If at first you don't succeed, skydiving is not for you
  122. donating to MySQL AB by verrol · · Score: 1

    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

  123. Re:Apparently 90% don't need those features....... by Anonymous Coward · · Score: 0
    If you are coding against MySQL with Perl it is always just as easy to do what the trigger or stored procedure will do for you in code in a very short amount of time.



    I don't believe you really know what triggers might be useful for. They lie beneath the application layer and handle the data. Thus I, as a DB designer, don't have to trust the application programmers to make sure that the data they enter always conforms to the specification. That I can to using triggers.



    For example, I can create a trigger that makes a backup of all rows that someone deletes from a table. The application programmer just issues standard DELETE statements and don't have to worry about this.



    I believe that triggers are a great way to keep data consistent whenever there are complex dependencies in data. But then again, most DB-users don't know how to design a database, normalize tables or even what to expect of a RDBMS. They might as well use DBM...

  124. Re:Apparently 90% don't need those features....... by erlando · · Score: 1

    Holy cr*p, you really pressed all kinds of buttons there. I was going up in flames right up until the last line of your post.

    Jolly good show, sir..! :o)

    --
    Remember, there are no stupid questions. But there are a lot of inquisitive idiots.
  125. Re:Apparently 90% don't need those features....... by kistel · · Score: 1

    You only have to code triggers once and they get executed every time when needed. If you do it "by hand", you have to insert this code in every place where the DB would execute the trigger. What if you forget one such place? What if the trigger logic changes? It's much easier to maintain the trigger, than all the code.

  126. Re:OSS fortune! by Anonymous Coward · · Score: 0

    What about selling software that requires a JDBC driver?

  127. PostgreSQL vs MySQL by gykh · · Score: 1

    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'

  128. Re:Uhm, PostgreSQL by hookcode · · Score: 1

    Yeah,

    but all those web-hotell providers usually give you MySQL for "free". So we have it and we use it :) If more web-hosting companies would supply PostgreSQL, Firebird or SAP DB maby you'll se the switch...

  129. Re:VIEWS! I said VIEWS, son! by aled · · Score: 1

    We are using for a POS-like application made in java using jaybird (firebird's pure java driver). We are not using it for a server.

    --

    "I think this line is mostly filler"
  130. Re:Apparently 90% don't need those features....... by thing12 · · Score: 2, Informative
    We run postgres and we're doing our damndest to get rid of it. We have some databases that get 50-100% data turnover rate daily, making hourly vacuums essential to not having the Ever Expanding Database problem. Not to mention that vacuum doesn't clean up indexes, so you'll also have to re-index periodically if you don't want those to grow to thousands of times their optimal size.

    Vacuuming is just a side effect of MVCC -- the expired rows have to be kept around so that other open transactions can see them. You pay on the backend for better concurrency on the front end. Even if you were continuously vacuuming your overall query latency and CPU usage would probably be lower than an equivalent MySQL database. There are also 3rd party projects that auto-vacuum... this is something that really should just be built in though. If automatic vacuuming were a configurable part of the base distribution, like the statistics collector, I'm sure you wouldn't be complaining. The sad thing is that it would be such an easy thing to add.

    As far as reindexing, I would call that a bug with they way B-Tree indexes are designed. Fortunately, the database is able to reuse index pages if the rows contain similar values. But that doesn't help if you're indexing data that's never similar you're going to be screwed. For example, if your indexed column is a sequence and you delete only the oldest values the db won't be able to reuse that space in the b-tree. A solution would be to use random numbers for your keys since you would get an even distribution over time. It might be worth trying one of the other index types though (R-tree, GiST, or Hash) to see if you get the same results.

  131. XML support in MySQL by Anonymous Coward · · Score: 0

    Any plans for XML support (compare PostgreSQL, DB2, Oracle, MS-SQL)? XPath queries inside SQL statements are a big win for us.

  132. Re:Apparently 90% don't need those features....... by Anonymous Coward · · Score: 0

    We run postgres and we're doing our damndest to get rid of it. We have some databases that get 50-100% data turnover rate daily, making hourly vacuums essential to not having the Ever Expanding Database problem. I have a few tables I vacuum every 15 minutes, but I found this really great 3rd party package called "cron". It allows me to create scripts and automagically run them at desired intervals. you should see if it's available for your platform. Not to mention that vacuum doesn't clean up indexes, so you'll also have to re-index periodically if you don't want those to grow to thousands of times their optimal size. I should probably say that such reindexes require full table locks, so you could get contention issues under heavy load when reindexing your database. Mysql gets by this by making indexes in a temporary space, and switching when the index is done. This means I can select from a table, with full benefit of an existing index, even while I change an index, or even redo the index. Not that I have to... mysql doesn't require vacuum or reindex to avoid continuous linear bloat. uh... you can do this in postgresql as well. simply begin a transaction to drop the old index and create the new one. while it's building all of your other queries will use the old index thanks to mvcc. So... we don't like having to babysit our database to get good performance out of it. We're willing to work around lack of foreign keys to avoid having to do full database import/exports on a weekly basis, and multiple hourly cron jobs to make sure we don't randomly fill our disks. Faster? Slower? Who cares. Postgres is just too annoying to use in production. your willing to sacrific data integrity for the sake of not having to do routine maintanance? that's a little scary.

  133. Why "real DBAs" whine... by JohnDenver · · Score: 2, Insightful

    I think you guys presented a good case as for trade-offs.

    MySQL - Fast, Well Supported, Good for Simplier Problems
    PostgreSQL - Limited Support, Needs more Attention, Suited for Complex Problems

    Why "real DBAs" whine

    I think the problem is that many DBAs and developers have really come to rely on JOINS, stored-procedures, triggers, etc. I've been using these features very actively for the past 4 years and wondered what I did without them all these years.

    In the past year alone, I've written almost 300 stored-procedures, about 1/4 of which are 4 or more pages of code that would have run like a dog has it been written on the client side.

    Having done a lot of 2-tiered, 3-tiered, n-tiered design, I've come to realize that the middle tier (business rules) doesn't have to outside the database in Perl code. If you can implement your middle tier inside the database, you'll almost always see a significant performance advantage and not have to worry about writing engine code to handle issues like concurrancy and multiple users.

    While MySQL is capable of handling a number of problems, it's very ill-suited for most enterprise business problems.

    You should notice that these "Real DBAs" mostly have a fit when people start making claims that MySQL can compete with Oracle. They're afraid some pointy haired boss is going to believe these claims, and is going to ask them to convert thier Oracle databases to MySQL.

    As for myself, I see MySQL as a nice step forward as far as performance is concerned, but it's a HUGE step backwards as far as functionality.

    In other words, It's a great engine for storing/retrieving lots of data, but it doesn't have the tools for manipulating/querying the data.

    For a lot of people, that means not cutting the muster.

    Thanks for the comment

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
  134. pghoster.com by gabe · · Score: 1

    I've been using pghoster.com for a while now. They're pretty damn good and cheap too. Acorn Hosting and Zill.net provide PostgreSQL as well (mainly because they primarily provide OpenACS hosting, which requires PostgreSQL)

    --
    Gabriel Ricard
  135. What the PostgreSQLer's dont understand by Random+Walk · · Score: 2, Insightful
    I would agree that even in the open-source world, many apps are popular because (a) they were the first on the market, or (b) have the better marketing department.

    However, having coded in C both for MySQL and PostgreSQL, I have to say that the MySQL docs are clearly better, and that their client library is more feature-rich than PostgrSQL. The MySQL database may lack features, but on the client side it is much easier to get simple things running.

  136. Re:Apparently 90% don't need those features....... by rifter · · Score: 1

    In my 6 months of professional development at a 3 man shop

    As soon as I read teh above, I knew he was making a jab at the typical Slashdotting mySQL weenie. ;)

  137. A moratorium on technical religious wars by camusatan · · Score: 2, Interesting
    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.

    1. Re:A moratorium on technical religious wars by Gelf+The+Elf · · Score: 1

      Preach on brotha.... I keep trying to explain to people, that with programming/computers/etc. there are 2309849238 ways to skin a cat. People saying "xyz database is the best" or "xyz language is the best" Never makes sense... 99.99999% of the time, you can use ASP/PHP to do the same exact things. I can do the same things in Perl that I can do in C. Some languages are better at some things that others. But NO LANGUAGE is a catch all for everything... Most people do not use any of the features Microsoft SQL has or Postgres or MySQL or whatever (although I do think it is sad that MySQL does not have stored procedures yet)...

  138. Re:Apparently 90% don't need those features....... by MattRog · · Score: 1

    A 'real' or more accurately a 'truely' relational database management system does not exist (yet? ever?). Every DBMS out there (Oracle, MS SQL Server, Sybase ASE, MySQL, PostgreSQL, etc.) are *flawed*, SQL-based DBMS.

    Check out www.dbdebunk.com to be enlightened.

    --

    Thanks,
    --
    Matt
  139. Re:Apparently 90% don't need those features....... by MattRog · · Score: 1

    EXCELLENT post. Sums up the armchair-DBA crowd here at /. quite nicely.

    If I had a gold star you'd get one :)

    --

    Thanks,
    --
    Matt
  140. Codd's 12 Rules and the importance of subqueries by Stu+Charlton · · Score: 1

    Codd's 12 rules 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.

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

    --
    -Stu
  141. Re:Apparently 90% don't need those features....... by curri · · Score: 1

    >>Point 3 (Much) better support for mysql than postgreSQL in PHP. You can argue all you want that php isn't something you would like do develop with, but a whole lot of websites use it.

    Actually, the support is pretty much the same, except the function names start with pg_ :)

    It used to be a pain to compile php with postgresql support but not anymore. Actually, even RH and Mandrake have it in rpms :)

  142. Don't throw the baby out with the bathwater... by rsborg · · Score: 1
    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.

    You could say the same thing about objects, in OOP. Most developers don't know how to use them well, and poorly defined objects either embedding or inheriting from other such objects can lead to poor performance and very strange bugs. However, most shops still use objects and classes.

    However, I will agree that most programmers don't have enought relational DB experience (I wish college CS curriculum would make relational algebra a required class, as RDBMS's are fairly ubiquitous these days).

    --
    Make sure everyone's vote counts: Verified Voting
  143. Re:Uhm, PostgreSQL by Anonymous Coward · · Score: 0

    You're not dumb, but you do need to RTFM.

    Postgres is an SQL server, not a desktop interface. It's there to do a job - if you plan to use it, shouldn't you find out how it DOES the job?

  144. Re:Apparently 90% don't need those features....... by Ost99 · · Score: 1

    Actually, the support is pretty much the same, except the function names start with pg_ :)


    As far as I've found out there is no pg_ equivilent for "while ($row = mysql_fetch_array($res)) you have to use indexes and a for loop. Makes it hard to convert a php/mysql script to use posrgreSQL.

    - Ost
    --
    ---- Sig. gone.