Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
The Almighty Buck

MySQL A Threat To The Big Database Vendors? 477

geekinexile writes: "Bloomberg is running a story on the growth of MySQL as an alternative to the big commercial database systems." The story mentions PostgreSQL as well, and presents a generally positive view of both.
This discussion has been archived. No new comments can be posted.

MySQL A Threat To The Big Database Vendors?

Comments Filter:
  • by essdodson ( 466448 ) on Sunday August 18, 2002 @12:00AM (#4091285) Homepage
    MySQL might become a threat when it
    1. Supports subselects
    2. Supports views
    3. Supports triggers
    4. Supports stored procs
    5. Does most the things that everyone takes for granted with a decent db server


    Now I know everyone's going to jump down my throat with "Hey, that's going to be in 4.x.y" blah blah... these things have been in use since the stone ages, too little too late and the support still isn't on par with Sybase, MsSQL, Oracle, etc..
  • by germania ( 447770 ) on Sunday August 18, 2002 @12:38AM (#4091427) Homepage

    well, maybe not MySql, but PostgreSql do


    • Supports subselects
    • Supports views
    • Supports triggers
    • Supports stored procs
    and does most the things that everyone takes for granted with a decent db server, because PostgreSql is a decent db server.
  • Use InnoDB (Score:2, Informative)

    by SiMac ( 409541 ) on Sunday August 18, 2002 @12:40AM (#4091432) Homepage
    MySQL Max binaries support InnoDB, which uses row-level locking. It can also be compiled from source with InnoDB.

    Also, IIRC, /. uses InnoDB.

    Simon
  • by Anonymous Coward on Sunday August 18, 2002 @01:00AM (#4091486)
    If you want something more on par with Oracle, then try SAP DB ( distributed under GPL or LPGL ):

    http://www.sapdb.org/

    It has a lot of the features that MySQL lacks:

    http://www.sapdb.org/sap_db_features.htm
    http:/ /www.sapdb.org/sap_db_documentation.htm

    Ever tried JDBC with PostgeSQL? If you haven't but are planning to, then you'll have some or lots of troubles depending on what features of JDBC 2.0 you use ( specially with LOBs and no performance benefit with BatchUpdates ):

    http://lab.applinet.nl/postgresql-jdbc/

  • Re:Not for a while. (Score:5, Informative)

    by nconway ( 86640 ) on Sunday August 18, 2002 @01:07AM (#4091507)
    I wish TPC www.tpc.org would do some MySQL tests and show just how it really perfoms when compared, to DB2, Oracle, and MS SQL Server.


    The specifications for the TPC benchmarks are freely available -- it's fairly easy to write a client application that follows one of the benchmark specs to test a specific database. contrib/pgbench in the PostgreSQL tree, for example, implements a "TPC-B-like" benchmark.

    Log based transactions.


    That's a fairly vague (or rather, inaccurate) term, but if you mean write-ahead logging, then PostgreSQL has done this since version 7.1. Some of the additional enhancements to this feature (such as point in time recovery) are planned for the near future, likely 7.4

    One data file for multiple tables.


    This sounds like a complete waste of time, IMHO. Since the database client shouldn't have any idea what the physical representation of the data is, it's not clear to me why this would be an important feature to have. Can you elaborate?

    I think Postgres is going to do this soon according to some of the discussions.


    Oh? I haven't heard anything about this...

    Complete SQL-92 support.


    "Complete" support for SQL92/99 is pretty damn difficult (SQL92 is 650+ pages, SQL99 is 1200+). Nevertheless, PostgreSQL aims to support as much of the standard as possible.

    MySQL and postgres are not as good of Multiuser system as the big boys.


    Erm, PostgreSQL uses MVCC, the same concurrency control scheme used by Oracle. It allows for "better than row-level locking" (readers and writers never conflict; one writer only blocks another if they update/delete the same row). In what way is PostgreSQL deficient in this regard?

    Right now postges sends a message to the application saying, this is locked retry transaction, this is just not up to real enterprise levels.


    When exactly does this happen, and what's the exact error message?
  • by kpharmer ( 452893 ) on Sunday August 18, 2002 @01:25AM (#4091567)
    Wrong on two accounts:

    1. It isn't just subselects - the list of *basic* stuff includes views, stored procedures, foreign keys, etc, etc. Note that we're not even getting close to the advanced features like parallelism, bitmap indexes, solid replication, etc, etc.

    2. Product & tool selection is driven by a variety of factors - including internal consistency, vendor relationships, staff skill sets, etc. So, while it is true that there are projects simple enough for MySQL (especially embedded databases) - it is also true that most *custom* database applications deserve something better than what we were doing twenty years ago. And at the point in which you have Oracle, MySQL, and then need to install Postgresql - you will be regretting the time to learn a slightly different product, obstacles to reuse, and administrative complexity of having MySQL in the mix.

    And lastly - the simplicity of MySQL is largely an illusion - since without transactions, subselects, views, etc you've simply moved the complexity from the database to the application layer. And while sometimes that is fine, the typical result is that simple tasks that could be done in a few lines of code or a few minutes in SQL instead take hours and hundreds of lines of application code.

  • by defile ( 1059 ) on Sunday August 18, 2002 @01:51AM (#4091619) Homepage Journal

    Addressing the typical slashdot negativity when MySQL is mentioned...

    MySQL, w/ InnoDB tables (binaried as MySQL-Max) supports transactions with row-level locking and multi-versioning. It also supports foreign key constraints to some degree (on delete cascade, IIRC).

    MySQL w/ InnoDB is extremely fast, and this isn't just on SELECTs. UPDATE/INSERTs are much faster than in MyISAM tables. Looking back, the turning point where MySQL went from a good database to a great database is when it picked up InnoDB, IMO.

    No, MySQL does not yet support stored procedures, subselects, or views. These are coming in 4.1, along with built-in hot backup support. Plus better replication. 4.0 is available now and seemingly stablizing. The biggest buzz is how thrilled people are with the query cache. At the current pace of development I imagine the above mentioned features will appear and stabilize in version 4.1 within 2 years.

    Is MySQL an Oracle replacement in all circumstances? Absolutely not, but very often Oracle is wholly unnecessary for many of the tasks it's purchased for. We're currently running MySQL + InnoDB on a 36GB dataset at a load of ~500 queries/sec average against a 3 month period. Approxiamtely 30% of queries are data modifications. This is obviously not an impressive system to many of you, but I'm fairly pleased with it, especially considering that "professionals" have been telling us abandon this toy database for years. Personally, I'm glad we saved the down payment on Ellison's next yacht.

    Is MySQL a PostgreSQL replacement? Probably not. There are back and forths about speed and features--PostgreSQL does support more of the features listed above--but I find MySQL to be easier to use and better supported, and the benefits to me of switching are not very apparant. Your mileage may vary. It's not the end of the world to enforce some business logic in the application layer, and it has its own benefits.

    MySQL continues to impress us and the support we receive is outstanding. And that was before we even decided to purchase a yearly support contract. I have nothing but praises to sing about MySQL, and I think it can only get better.

    Oh and it's free and open source. *shrug*

  • Re:challenge? (Score:3, Informative)

    by delta407 ( 518868 ) <slashdot@nosPAm.lerfjhax.com> on Sunday August 18, 2002 @01:56AM (#4091632) Homepage
    mySQL tends to favor read-intensive activities but is a little weak on write-intensive and transaction stuff.

    Agreed. I use MySQL in a few different production environments, and it works great -- speed is good (even on old, old hardware) and the flexibility is excellent (different formats on a per-table basis). However, I find the SQL implementation somewhat lacking.

    UNION [mysql.com] support is a little late -- why did it take until 4.0.0 to implement? Furthermore, the lack of subselects [mysql.com] makes everyday activities such as multi-table UPDATEs [mysql.com] a little arcane. (Read the "it can't be done this way" comments on the bottom to see what I mean. AFAIK the only solution is to create a new table, do an INSERT ... SELECT on your source tables, DROP the first table, and rename the temporary table. Very, very icky.)

    MySQL also lacks triggers and views -- views are kind of handy, but if given subselects, can usually be done without. Triggers, though, give one a way to enforce logic (say, relational integrity), which would be very nice to have.

    Oh well. I really would like to have my cake, but I guess I'll settle for eating it...
  • by hobuddy ( 253368 ) on Sunday August 18, 2002 @03:43AM (#4091828)
    Great, YET ANOTHER article on open source databases that fails to mention SAPDB or Firebird, even though they're both a hell of a lot better than MySQL in most respects (especially true of SAPDB).

    Most journalists (and 75% of Slashdotters) apparently are ignorant of the advanced features offered by the "big boy" commercial databases they so love to deride; they end up doing all open source databases a disservice by equating all open source databases (in the mind of the pointy-haired boss) with the puppy of the household, MySQL.
  • Replication (Score:2, Informative)

    by Betcour ( 50623 ) on Sunday August 18, 2002 @03:51AM (#4091837)
    Actually MySQL does replication just fine (but it is only one way, there can only be one master). If you need few updates and huge amount of reads this allows you to spread the load amongst several servers.

    That's a weakness PostgreSQL (which doesn't do any replication at all) should fix in a future release.
  • Why not Firebird? (Score:2, Informative)

    by Holger Spielmann ( 243913 ) on Sunday August 18, 2002 @07:23AM (#4092097)
    Being a developer of Java web applications myself, I always wonder why Firebird doesn't find any broader use.
    I mean, in an commercial environment, there's always the reason to have someone to blame if you choose a closed-source solution like Oracle or DB2, so the managers refuse to accept Free Software or Open Source. Plus there are features in Oracle etc. still missing in the free alternatives.
    But what about all the small, non-commercial projects? Firebird is really easy to install, it's scalable as hell and is, contrary to MySQL, a real database.
  • Firebird (Score:3, Informative)

    by KlausBreuer ( 105581 ) on Sunday August 18, 2002 @08:12AM (#4092140) Homepage
    > 1. Supports subselects
    > 2. Supports views
    > 3. Supports triggers
    > 4. Supports stored procs
    > 5. Does most the things that everyone takes for granted with a decent db server

    Strange. Am I missing something, or am I just dumb? Firebird (open source version of Interbase from Borland) does all that, and does it well. It runs on Unix, Linux and Windoze (yes, some people need that), works very nice and fast, is reliable, costs exactly nothing, and I use it in quite a few real-world applications.

    How come I never hear of it on Slashdot?
    Have a look at http://sourceforge.net/projects/firebird/

    Ciao,
    Klaus
  • by yerricde ( 125198 ) on Sunday August 18, 2002 @09:59AM (#4092349) Homepage Journal

    In the case of libmysql (C native-interface library of MySQL), developers are forced to pay so much money for using GPL code(libmysql) in their software as non-GPL state, plus their customers have to pay money for commercial-licensed MySQL server.

    Bull. The libmysql client software is NOT GPL but rather Lesser GPL, which allows linking the client software against a proprietary application program. "A license is not required if: You include the MySQL client code in a commercial program. The client part of MySQL is licensed under the LGPL" [mysql.com]. Even then, MySQL with InnoDB is $400 per multi-processor machine [mysql.com], as opposed to MS SQL's $20,000 per processor for the unlimited-client license.

    Microsoft doesn't require such license fee when you use OLE/DB etc. to get native access to SQL server.

    Yes it does. Microsoft SQL Server is priced based either on the number of processors or on the number of machines that will access the database [microsoft.com].

And it should be the law: If you use the word `paradigm' without knowing what the dictionary says it means, you go to jail. No exceptions. -- David Jones

Working...