Slashdot Mirror


'Most Important Ever' MySQL Reaches Beta

An anonymous reader writes "The open source database company says it is 'fixing 10 years of critcism in one release', and is aiming at boosting enterprise take-up." Stored procedures. Triggers. Views. It's like it'll be a real DB!

5 of 632 comments (clear)

  1. Re:Beta? by JianTian13 · · Score: 5, Informative
    http://dev.mysql.com/doc/mysql/en/news-5-0-3.html

    This Beta release, as any other pre-production release, should not be...


    Uhh, just look a little deeper.
  2. Dupe by bdigit · · Score: 5, Informative

    Wow Taco, all I did was search mysql and bam

    http://developers.slashdot.org/article.pl?sid=05/0 3/28/1856255&tid=221&tid=8/

    Expect more hatemail.

  3. Re:being a paying customer... by kpharmer · · Score: 5, Informative

    > It's faster than everything else because it doesn't have all the data integrity features that a RDBMS does.

    Hmmm, really? Lets see...

    if you're using myisam (the fast io layer), then all locking is done at the table level. Which means that if you get multiple connections attempting to write to the same resource they'll all have to wait while their operations run in series. Fast? Nope, hard to imagine a slower scenario than that.

    again, if you're using myisam (again the fast solution), and need to select 10% of the rows of a table with 10 million rows, what will it do? It'll do a scan of all 10 million rows. What would oracle, db2, or informix do? Rely on partitioning to just scan those 1 million rows. Of course, these commercial databases will also break the query up into pieces and run them all in parallel across multiple cpus on your server. You could easily find mysql taking 40x as long to respond to this query as one of the others.

    How about if you've got a complex query? Well, mysql admits that their optimizer is very primitive, and will take a while to fine-tune. Great, so now you just write a few different versions of your query until you get the speed you want, probably depending on 'gaming' the optimizer. Then when you upgrade the software next year you'll find that your gaming is killing performance. Time to rewrite the query. No big deal, we all went through this (about twenty years ago, and glad to have it behind us).

    ok, how about using their non-isam option. Ok, now we've got the kind of data integrity we've taken for granted since about 1981. But, reads are very slow, often 1/10th the speed of myisam.

    On the Innodb site they brag about getting 800 inserts / second. I think the most recent db2 benchmark on a 4-way intel box hit almost 3,000 transactions per second. Note: Not just simple inserts & updates, it was a tpc benchmark. And that's on a low-end box. At the high-end db2 is running 80,000 of these transactions per second.

    Fastest? please, only in read-only transactions running on tiny hardware...

  4. Re:The biggest problem is not technical by Trifthen · · Score: 5, Informative
    * Easy replication on MySQL/ Not so easy on PostgreSQL
    Not really.

    Go ahead and click on any of the links on that page which describe bugs fixed in a release of the many branches. In almost every one, there's a critical bug that causes replication to fail, turn itself off, crash mysql, or otherwise act in an unpredictable manner. We've wanted to use it for two years now, but every release has some terrible flaw that makes this impossible.

    Heck, they've only recently fixed a bug in the 4.0 branch that's been there since at least 4.0.12 which caused mysql to silently segfault and restart itself. Not to mention the bug before that, which segfaulted, restarted mysql, and randomly corrupted open tables. 4.0 is just now getting to the point where I'd recommend it to other people. I won't touch 5.0 with a mile-long pole until it hits 5.0.20.

    --
    Read: Rabbit Rue - Free serial nove
  5. Re:being a paying customer... by Anonymous Coward · · Score: 5, Informative

    Why don't you give 5.0 a try? You'll find things have changed a bit. You can startup the server in TRADITIONAL, STRICT_ALL_TABLES, and ANSI modes and get the behavior you want:

    mysql> CREATE TABLE null_1 ( id INT NOT NULL, text1 VARCHAR(32) NOT NULL, text2 VARCHAR(32) NOT NULL DEFAULT 'foo' );
    Query OK, 0 rows affected (0.00 sec)

    mysql> INSERT INTO null_1 (id) VALUES(1);
    ERROR 1364 (HY000): Field 'text1' doesn't have a default value

    mysql> INSERT INTO null_1 (text1) VALUES('test');
    ERROR 1364 (HY000): Field 'id' doesn't have a default value

    mysql> CREATE TABLE bounds_test ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, price NUMERIC(4,2), code VARCHAR(8), numbers_only INT );
    Query OK, 0 rows affected (0.00 sec)

    mysql> INSERT INTO bounds_test VALUES ( 99999999999999, 21474.83, 'ABCDEFGHIJK', 'A quick brown dolphin...' );
    ERROR 1264 (22003): Out of range value adjusted for column 'id' at row 1