User Rating: 0 / 5

Star inactiveStar inactiveStar inactiveStar inactiveStar inactive
 
By Robin Schumacher & Arjen Lentz

Introduction

As anyone will tell you, competition is a good thing because it gives you a choice. Acquiring current and accurate information about your options enables you to spend your time and money in the most efficient way and is certainly time well spent.

In an IT market survey in Australia in 2004 (“It's tough selling IT these days”, ComputerWorld 22 Nov.), 77% of managers said the thrashing of other vendors in a competitive situation was unacceptable. Spreading FUD (Fear, Uncertainty and Doubt) is becoming less acceptable in competitive software engagements and signifies that the person or organization spreading such information is either not up to date in their knowledge on the subject matter, or they do not have any real value on their side to offer.

This article aims to sort out some of the myths that have been spread about the MySQL database server and uses MySQL 5.0 as the baseline, but also includes references to earlier versions where relevant.

Why do such a thing? Because outdated information on the Internet can hang around forever, with the end result often being that antiquated views and opinions are quoted or otherwise recycled without the end users of such information ever knowing that the data either no longer applies or perhaps was never correct to begin with. As a database professional, you should be mindful of this when going about your research because you wouldn't want to be making a costly decision based on incorrect information.

So exactly what myths will we attempt to undo? Here’s a list of the most common:

  • MYTH: MySQL is a new, untested database management system
  • MYTH: MySQL doesn’t support transactions like other proprietary database engines
  • MYTH: MySQL is only for small, departmental, or web-based applications
  • MYTH: MySQL doesn’t offer enterprise-class features
  • MYTH: MySQL doesn’t have the type of support large corporations need
  • MYTH: MySQL isn’t open source any more

At the end of the article, references to additional resources are also provided where you can find more information on the various topics discussed here.

MySQL Myth #1: “MySQL is a new, untested database management system

The truth: MySQL AB has been around for over ten years and is battle-proven technology.

MySQL was initially developed by Michael (Monty) Widenius, currently CTO of MySQL AB, as a data warehousing solution and has grown over time to be one of the leading RDBMS platforms in use today.

MySQL AB, the company, was set up around 2000 to more formally handle the incredible popularity of the MySQL database server. MySQL AB (see http://www.mysql.com/about/) continues to develop the MySQL database software and related products and services. It now has over 200 employees around the world and owns the related copyright and trademarks (see http://www.mysql.com/about/legal/trademark.html).

In terms of the proven nature of MySQL, over six million installations exist of MySQL around the world, with over 40,000 downloads of the software occurring each day. The beta of MySQL 5.0 alone has been downloaded over two million times. Such widespread usage by both the corporate and open source community creates a fantastic forum of feedback and test cases that have led to the rock-solid reliability of MySQL that is enjoyed today.

MySQL Myth #2: “MySQL doesn’t support transactions like other proprietary database engines

The truth: MySQL offers one of the most robust transactional database engines on the market.

One of MySQL’s distinguishing features is that it offers a number of different “storage engines” that are specifically designed to handle a particular application need. One of the most popular engines is InnoDB, which supports transactional database requirements. The InnoDB engine has been GA (production) with MySQL for years now and first appeared in the 3.23 version of the server.

MySQL patterns its transaction support after Oracle and supports ACID (atomic, consistent, isolated, durable) transactions with full COMMIT and ROLLBACK functionality. Because continuous access to transactional data is so important, MySQL offers many features that ensure high levels of data concurrency. Unlimited row level locking, multi-version consistent (or “snapshot” as in Oracle) lock-free reads, isolation level control, and instant deadlock detection are all present in MySQL.

There are many other rich features present in MySQL’s transactional storage engine like clustered and standard indexes, distributed transaction control, server-enforced referential integrity, and much more. So the lesson here is that MySQL does indeed support transactions in a robust way.

MySQL Myth #3: “MySQL is only for small, departmental, or web-based applications

The truth: MySQL powers some of the largest and most heavily trafficked systems in production today.

One of the great things about MySQL is that it can be scaled down to support embedded database applications, with only a 1MB footprint being possible in some cases. Perhaps it’s this reputation that has caused some to reach the conclusion that MySQL can only handle small to medium-sized systems. But that is jumping to conclusions.

MySQL is the de-facto standard database for web sites that support huge volumes of both data and end users. Examples include Friendster (over 1.5 billion queries a day and 21TB of data storage), Yahoo, Google, and many others. MySQL also powers large data warehouses with examples being Cox Communications and Los Alamos Lab (7TB and growing…) And MySQL is a popular choice for high-traffic OLTP systems in retail, government, and elsewhere.

Customers routinely use MySQL with confidence to support their heavy-duty, large database applications, and know that it will scale to meet their future needs through the popular scale-out architecture implementation. Companies wishing to know who else in their market segment has already successfully deployed MySQL can visit http://www.mysql.com/customers/ for an overview. Among these users are modern on-line businesses, but you will also find traditionally conservative government, defence and financial institutions.

MySQL Myth #4: “MySQL doesn’t offer enterprise-class features

The truth: MySQL provides most useful RDBMS features today, while offering unique features that can’t be found in any other database engine.

Myths have circulated for years that MySQL is a bare-bones database that doesn’t have any punch for real database work. However, the truth is MySQL has a rich feature set that supplies 80-90% of the features offered by the far more expensive proprietary database vendors. Some examples not mentioned previously in this article include:

  • Native support for nearly every major platform including most flavours of Unix, Linux, Windows, and Mac. Both 32 and 64 bit are supported.
  • Robust security and data protection model that includes highly granular authentication and object permissions, built-in data encryption/decryption, SSL connectivity, flexible server backups with point-in-time recovery, and server-enforced data integrity.
  • Powerful high-availability options that include built-in replication, clustered database support in a shared-nothing environment, and third-party support for additional clustering capabilities.
  • Hassle-free storage management functions like auto-expanding data files and objects, customizable storage assignments, automatic space reclamation, and compressed tables.
  • A wide application development infrastructure that includes stored procedures, triggers, update-able views, SQL and user-defined functions, INFORMATION_SCHEMA, cursors, full-text index search, prepared statements, subqueries/joins, binary large objects, and ANSI-standard SQL language support.
  • A comprehensive set of application connectors that include C, Java, ODBC, .NET, PHP, Perl, Python, and others.
  • A graphical management, design, development, and cross-platform data migration tool suite.

In addition to the above features that most trusted proprietary databases contain, MySQL sports some unique characteristics that make it popular for mission-critical systems. For example, the pluggable and customizable storage engine concept of MySQL provides great flexibility for those wishing to utilize only the database features necessary for an application. Another example is MySQL’s Query Cache (something that can’t be found in any other database engine), which provides the potential for near instantaneous response times for repetitively-issued queries by storing both the query and its result set in RAM (which reduces not only physical I/O, but also drastically reduces logical I/O as well).

MySQL Myth #5: “MySQL doesn’t offer the type of support large corporations need

The truth: MySQL provides a full production-level staff capable of around-the-clock support with specific SLA mandates.

In a report produced by Forrester Research, the number one reason cited by corporations for not adopting open source software was a lack of formal support. This isn’t surprising as no smart corporation wants to rely on the hope that someone will answer a cry for help on an Internet mail-list when a critical system is down and no one knows what to do.

MySQL AB recognized this concern long ago and has created a worldwide production-ready support organization that is capable of delivering the same high-quality level of support that is offered by proprietary database vendors, but at a much reduced cost. Customers of MySQL Enterprise enjoy 24 x 7 support with options that include remote troubleshooting and tuning, rapid response rates (maximum of 30 minutes depending on support level), assigned support account managers, and much more

No one migrating from a proprietary database to MySQL need worry about top-notch assistance being available because everything that corporate customers need and expect from a support standpoint can be found at MySQL AB. Also note that Consulting ( http://www.mysql.com/consulting/ ), Training ( http://www.mysql.com/training/ ), and Certification ( http://www.mysql.com/training/certification/ ) are also available.

MySQL Myth #6: “MySQL isn’t open source any more

The truth: MySQL AB remains fully committed to open source. and is an active member of the open source community.

Because MySQL offers a dual-licensing model, some have claimed that MySQL isn’t truly open source. Such a claim is simply false as MySQL AB continues to fully make available its database server and ancillary components (connectors, GUI tools, etc.) in GPL form. Non-GPL open source projects that wish to link with MySQL client code can also do so, utilizing the MySQL FLOSS Licensing Exception ( http://www.mysql.com/company/legal/licensing/foss-exception.html ). For those wishing to embed MySQL within a closed source application distributed in the market, non-GPL (commercial) licenses are also available.

MySQL is an active member of the open source community and a leader in the fight against software patents (see http://nosoftwarepatents.com/ ). External contributions from the open source community to MySQL are most welcome. Note that for the dual licensing business model to work, assignment of copyright is required if the submission is larger than a small bug-fix.

Conclusion

As was previously stated, being armed with the truth and facts helps one move forward in a positive fashion. Hopefully, this article has helped clear up some of the myths that have been repeated around the Internet camp-fire about supposed inadequacies in MySQL. Of course, the best cure for such things is to actually find out the facts for yourself, so why not download MySQL today ( http://dev.mysql.com/downloads/ ) and begin exploring all the possibilities that come with the world’s most popular open source database. You will likely be surprised at just how far it can take you.

References

MySQL 5.0 Technical FAQ

http://dev.mysql.com/tech-resources/faq.html

MySQL Licensing

http://www.mysql.com/about/legal/licensing/

Ask MySQL licensing questions: http://www.mysql.com/about/contact/?topic=licensing

MySQL storage engines and data integrity:

MySQL Storage Engines http://dev.mysql.com/doc/mysql/en/storage-engines.html

The InnoDB transactional storage engine http://dev.mysql.com/doc/mysql/en/innodb.html

Foreign Key Constraints http://dev.mysql.com/doc/mysql/en/innodb-foreign-key-constraints.html

SQL Server modes http://dev.mysql.com/doc/mysql/en/server-sql-mode.html

Article introducing and comparing the main MySQL storage engines http://dev.mysql.com/tech-resources/articles/storage-engine/part_1.html

How to create a new storage engine http://dev.mysql.com/tech-resources/articles/creating-new-storage-engine.html

The ARCHIVE storage engine http://dev.mysql.com/tech-resources/articles/storage-engine.html

MySQL Cluster and Replication:

MySQL Cluster http://dev.mysql.com/doc/mysql/en/ndbcluster.html

MySQL Replication http://dev.mysql.com/doc/mysql/en/replication.html

MySQL Features

Stored Procedures http://dev.mysql.com/doc/mysql/en/stored-procedures.html

User Defined Functions http://dev.mysql.com/doc/mysql/en/create-function.html

Subqueries http://dev.mysql.com/doc/mysql/en/subqueries.html

Update-able views http://dev.mysql.com/doc/mysql/en/views.html

Triggers http://dev.mysql.com/doc/mysql/en/triggers.html

Query Cache http://dev.mysql.com/doc/mysql/en/query-cache.html


Donate Bitcoins