Welcome to MSDN Blogs Sign in | Join | Help

Deven Kampenhout's Tech Blog

Experiences of a Web Infrastructure Architect in the Hosting Industry
Mysql Triggers Turn on the Heat

 Peter Gulutzan wrote an interesting article describing his Mysql Triggers Tryout with the latest Alpha build of MySQL 5. I've been a long-time fan of MySQL. I first started using it in 1998, and have watched with great interest as it has matured. It seems that it is working very hard to match the features of the "enterprise" level SQL databases such as Oracle and MS SQL. For quite some time, many enterprise database (MS SQL, Oracle, etc.) advocates have drawn attention to the lack of features such as triggers and stored procedures in the MySQL database. Soon, the lines between the features of these competing databases will narrow.

 

One of my favorite things about MySQL in the past has been its speed and its simplicity. Could all of these new features be a pandoras box of instability and performance drains? In trying to compete with the larger databases, I hope that the database that I "grew up" with doesn't loose its identity, its speed, and its stellar performance. The way I see it, not every application needs the power to run join queries on a 3 Terabyte sized database. For small to medium sized database applications (most web apps), speed and simplicity are paramount. In these smaller applications, good database design can almost always compensate for the lack of some of the advanced features offered by the more advanced databases. As MySQL bridges into the enterprise DB space, will these key benefits remain intact?

 

I wonder what kind of an ultimate impact the "improvement of MySQL" will have on the Database market, as well as on MySQL itself. MySQL is an open source database, but it can be used either under the GPL or under a commercial license. The commercial license is not free, but gives the purchaser assurances and frees them from some of the limitations of GPL (most notably, doesn't require the licensee to distribute their application under the GPL). As the competition from MySQL picks up steam (and it already is), perhaps the other vendors will allow a free license for their databases under specific circumstances similar to MySQL licensing. The challenge is that the database market is a very high revenue generator for both Microsoft and Oracle, so there is a great deal at stake for both companies. At the same time, if MySQL takes over a significant portion of the market will their licenses change to better take advantage of their improved position and give them more cash? Will the approach of MySQL cause the enterprise databases to invent new innovations to differentiate themselves from the growing competition from MySQL?

 

Needless to say, it is going to be a battle ahead for the database players. There is a great deal at stake, so I'm sure the battles will be hard fought. Unlike Linux, the MySQL community centers around a private "for profit" company funded by venture capitalists. This could give a great deal of stability, legitimacy, and force-of-will to the MySQL movement; Or it is possible that the need for profits will cause a large rift with its Open Source (i.e. "We want everything to be free") champions. Only time will tell.

 

*Disclaimer* This posting represents the opinion of the author, and not any of the parties mentioned herein or the opinion of my employer. This post is also subject to the default disclaimer of my blog.

Posted: Monday, February 07, 2005 11:27 PM by devenkamp

Comments

Nick Toye said:

Please design for firefox and then fix it for IE, the image on the left is obscuring the text on the right.

Just something to think about.
# February 13, 2005 5:10 AM

Deven Kampenhout said:

Thanks for pointing that out, Nick.

One of my greatest pet peeves is when sites work well in one browser but not in another. As it happened, the fault was in the CSS stylesheet that I was using. Although the design of the stylesheet was cool, I decided to switch to one that was browser independent.

Let me know if you're still having troubles. I checked out the site in both IE and Firefox (I LOVE Firefox), and it looks better now.
# February 13, 2005 12:30 PM

Joshua Bentham said:

I agree with Deven - we're about to see some major battles ahead in the database market. However, I think that MySQL is not the strongest player here.

PostgreSQL is a much stronger contender for enterprise applications. Here's why.

1. Since it's BSD licensed, it's free for any use. Period. There are a handful of companies that have repackaged it and sell/support it commercially (Command Prompt, Fujitsu, Pervasive to name a few).

2. With the 8.0 version, performance is comparable, if not better. Under heavy loads with many connections performance is better.

3. There is much stronger error/type checking. (Look at the <a href="http://sql-info.de/mysql/gotchas.html">MySQL Gotchas</a> for reasons why you should not use MySQL in an accounting application.

4. Uses multi-versioned concurrency, non-blocking locks, has hot backup, triggers can be written in a PL/SQL like language, or Java, or Python. (PGSQL is one of the few DB's that have efficient row-level locking; even when a row is locked for writes it can still be read. This increases performance and prevents deadlocks.)

5. Many people say that it is more stable and there have been fewer (zero? not sure on this one) cases of data loss in production systems. Even on large datasets (1 TB range) it performs reliably and extremely well.

6. Cross-platform: runs natively on Windows and Unices.

People are using PostgreSQL to replace Oracle in many applications. (<a href="http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:1886476148373">Look here</a> and search for PostgreSQL within the document for an example.) The price is definitely right for small installations (where Oracle and DB2 cost no less than $500), and with a working .NET provider (Npgsql), small Windows app installations that need more than 2GB of data storage won't have to pay for a MS-SQL server. There are clustering solutions available for PostgreSQL that are far less expensive (and just as supported) than licensing fees required by functionally alike solutions from Oracle, DB2, or MS-SQL.

Granted, the Big Three commercial RDBMS's offer some specialized functionality, but 90% of the uses out there won't need that functionality, and would do well with selecting PostgreSQL.
# February 18, 2005 11:42 AM
New Comments to this post are disabled
Page view tracker