MySQL A Threat To The Big Database Vendors?
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.
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..
scott
MySQL Max binaries support InnoDB, which uses row-level locking. It can also be compiled from source with InnoDB.
/. uses InnoDB.
Also, IIRC,
Simon
If you want something more on par with Oracle, then try SAP DB ( distributed under GPL or LPGL ):
/ /www.sapdb.org/sap_db_documentation.htm
http://www.sapdb.org/
It has a lot of the features that MySQL lacks:
http://www.sapdb.org/sap_db_features.htm
http:
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/
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.
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
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?
Oh? I haven't heard anything about this...
"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.
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?
When exactly does this happen, and what's the exact error message?
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*
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 support is a little late -- why did it take until 4.0.0 to implement? Furthermore, the lack of subselects makes everyday activities such as multi-table UPDATEs 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
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...
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.
Erlang.org: wow
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.
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.
> 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
Free PC version of ChipWits at http://www.breueronline.de/klaus/chipwits/
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". Even then, MySQL with InnoDB is $400 per multi-processor machine, 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.
Will I retire or break 10K?