The MySQL Database

Databases and MySQL.

Databases are the backbone of any Internet web application. Even if you’re not explicitly using a database, chances are that you’re using one somewhere down the line. For example, if you’re hosing a WordPress blog or using a CMS like Joomla, those applications use a database for storing data at their backend.

For web developers who are starting out, MySQL is often the database of choice for them. The primary reason for this is that it’s free as in ‘beer’! If you’re on a hosting plan, you will almost always have a certain number of MySQL databases you can create at no cost, and this alone is a good incentive to use it.

MySQL has come a very long way over the years and is currently in version 5.x. With the latest release, it finally supports all the functions that are expected of a professional database and is ready to challenge the likes of SQL Server and Oracle.

Well, maybe not quite, but it’s getting there.

Uses of MySQL.

When it comes to being used as a backend for web applications, MySQL is certainly no slouch. It’s used by web intensive apps such as Facebook as well as the MediaWiki CMS (read Wikipedia). Even Google uses it for some applications and so does YouTube.

MySQL follows a dual licensing policy. Meaning that there are two ways you can use it. You can use it under the GPL license which means that it’s free. You can do anything you want with it other than make money by modifying or selling it. The GPL license propagates – if you modify the source code of MySQL which is available freely, that work is automatically under the GPL license as well.

You can also buy MySQL enterprise where you have to pay for it.

In the enterprise license, you can get technical support, advice on how to set up your database properly, as well as several additional features like monitoring and more frequent updates etc.

But functionally, both the licenses refer to the same product – you’re not getting anything lesser than the real deal under the GPL.

Enterprise Functionality.

MySQL has been evolving over the years and has only recently come to support the full gamut of relational functions that have been integrated into other databases like MSSQL for years. These include triggers, stored procedures and views. As a result, until they become stabilized and mature, enterprise users will be slow in adopting it.

On the security front, MySQL lacks certain features like security certifications (MSSQL is a C-2 certified database), as well as advanced techniques for encryption and authorization. MySQL also lags behind MSSQL in certain backup functions. So while it’s an excellent database for starting out, professional organizations need to 100% sure of the safety of their data and MySQL hasn’t quite got there yet.

But apart from Enterprise level performance, MySQL really shines. It’s light, free, and has a wide variety of storage engines for different purposes (MSSQL only has the Sybase engine). If you’re just starting out and are in a shared hosting environment, chances are that MySQL will be the database of your choice.