Even though larger databases use MySQL, most people use it for the backend of their website. It runs on many platforms Linux, Microsoft Windows, FreeBSD, Sun Solaris, IBM's AIX, Mac OS X, HP-UX, AIX, QNX, Novell NetWare, SCO OpenUnix, SGI Irix, and Dec OSF. You can connect to a MySQL database server from all of the major platforms, using nearly any programming language including the ODBC interface.
MySQL database server's unique independent storage engines let you choose the type of database storage (table type) that is most appropriate for your particular needs. If you need row-level locking and transaction support, you can use the InnoDB storage engine. If your application doesn't require transactions, you can use the MyISAM storage engine for maximum performance. Using the InnoDB or Berkeley DB (BDB) storage engines, the MySQL database server supports transactions. The InnoDB storage engine also supports foreign key constraints.
The MySQL database server has an advanced permissions and security system, including support for SSL transport-layer encryption. As of version 4.0, the security system also allows you to limit server resources on a per-user basis. Version 4.0 of the server includes a new query cache, which can significantly increase the performance of commonly-issued queries, without requiring any special programming. Using database replication, you can have many "slave" servers running off a single "master" server for robustness and speed.
Full-text indexes allow you to search fields containing arbitrary text for specific words and phrases, including relevance rankings. The feature includes exact phrase matching and Boolean search operators, which allows for even more fine-grained control over your search results.
MySQL is used in applications and electronics devices, without end-users having any awareness of the underlying database. The embedded MySQL database is ideal for use behind the scenes in Internet appliances, public kiosks, turn-key hardware/software combination units, high performance Internet servers and self-contained databases distributed on CD-ROM.
The only real drawback to using MySQL is if you may need a feature (such as stored procedures) that is very new or not yet available. MySQL is spending a lot of their efforts on adding new and additional features. Stored procedures are now available in version 5. Even though this version is not considered production, keep this in mind, MySQL does not release a version with any known "bugs". It is only after one year with no known issues does it consider a release out of beta. In the end, the only way this works is that it is good solid code. Over the years I have dealt with many software vendors that put out a product too soon. MySQL has gone to great lengths to keep their product solid. Wouldn't it be nice if all software vendors took a similar approach.
Downside, MySQL lacks some features that other databases have. Upside, it has a very low cost of entry and is similar enough to other databases that programmers and DBA's can get up to speed soon. It has evolved into a solid contender with many of the features you find in fully commercial databases, without compromising speed and stability.
About the Author
John W. Horn PhD has been programming since 1983 and is currently the CEO of Interstate Software the only MySQL training center in North America. His company is the only "Gold Level" MySQL training, support and consulting group in the world. He is based in Kansas City Missouri.
Page 2 of 2