Home Scripts and Programs Glossary and Articles Other Resources Contact Us About Us
Adult Hosting
Budget Hosting
Coldfusion Hosting
Colocation
Dedicated Servers
Game Servers
Linux Hosting
Managed Hosting
Reseller Hosting
Ruby on Rails Hosting
Virtual Private Servers
Windows Hosting
Advertiser Login
Create An Account
More Info
MySQL
MySQL is a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS) with an estimated six million installations. MySQL AB makes MySQL available as free software under the GNU General Public License (GPL), but they also dual-license it under traditional proprietary licensing arrangements for cases where the intended use is incompatible with the GPL.

Unlike projects such as Apache, where the software is developed by a public community, and the copyright to the codebase is owned by its individual authors, MySQL is owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, which holds the copyright to most of the codebase. The company develops and maintains the system, selling support and service contracts, as well as proprietary-licensed copies of MySQL, and employing people all over the world who collaborate via the Internet. Two Swedes and a Finn founded MySQL AB: David Axmark, Allan Larsson, and Michael "Monty" Widenius.

There are APIs available that allow applications written in numerous programming languages to access MySQL databases, including: C, C++, C#, Eiffel, Smalltalk, Java (with a native Java driver implementation), Lisp, Perl, PHP, Python, Ruby, REALbasic and Tcl; each of these uses a specific API. An ODBC interface called MyODBC allows additional programming languages that support the ODBC interface to communicate with a MySQL database, such as ASP. MySQL is mostly implemented in ANSI C, and, that being a common "lingua franca" for system libraries, tends to use that as its "native" language.

MySQL is popular for web applications like MediaWiki and PHP-Nuke and acts as the database component of the LAMP and WAMP platforms (Linux/Windows-Apache-MySQL-PHP/Perl/Python). Its popularity as a web application is closely tied to the popularity of PHP, which is often combined with MySQL and nicknamed the Dynamic Duo. It is easy to find many references that combine the two in websites and books (PHP and MySQL for Dummies, PHP and MySQL Bible, Beginning PHP and MySQL, etc.) The claim made in many books is that MySQL is easier to learn and use than many other database applications. An example from the Dummies book is that you can quit MySQL with an obvious command of either exit or quit, although this is true for many other database applications.

To administer MySQL databases one can use the included command-line tool (commands: mysql and mysqladmin). Also downloadable from the MySQL site are GUI administration tools: MySQL Administrator and MySQL Query Browser.

A widespread and popular alternative, written in PHP, is the free software web application phpMyAdmin.

Platforms

MySQL works on many different platforms—including AIX, BSDi, FreeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP and more recent versions of Windows. A port of MySQL to OpenVMS is available here.

The latest production version

As of January 2006, MySQL offers production version 5.0.18. It includes the following features:

* A broad subset of ANSI SQL 99, as well as extensions
* Cross-platform support
* Stored procedures
* Triggers
* Cursors
* updatable Views
* True VARCHAR support
* INFORMATION_SCHEMA
* Strict mode
* X/Open XA distributed transaction processing (DTP) support; two phase commit as part of this, using Oracle's InnoDB engine
* Independent storage engines (MyISAM for read speed, InnoDB for transactions and referential integrity, Archive for storing historical data in little space)
* Transactions with the InnoDB, BDB and Cluster storage engines; savepoints with InnoDB
* SSL support
* Query caching
* Sub-SELECTs (or nested SELECTs)
* Replication with one master per slave, many slaves per master, no automatic support for multiple masters per slave.
* Full-text indexing and searching using MyISAM engine
* Embedded database library
* Full Unicode support
* ACID compliance using the InnoDB, BDB and Cluster engines
* Shared-nothing clustering through MySQL Cluster

Future releases

The MySQL 5.1 roadmap outlines support for:

* Partitioning
* Online backup for all storage engines
* Fail-safe replication
* Column-level constraints
* Event Scheduling
* XML functions

Foreign key support for all storage engines will likely be released with MySQL 5.2 (although it has been present since version 3.23 for InnoDB).

Distinguishing features

The following features are implemented by MySQL but not by some other RDBMSes:

* Multiple storage engines (MyISAM, Merge, InnoDB, BDB, Memory/heap, Cluster, Federated, Archive, CSV, Blackhole and Example in 5.x), letting you choose the one which is most effective for each table in the application.
* Commit grouping, gathering multiple transactions from multiple connections together to increase the number of commits per second.

Different Server Compilation Type (Standard, Max and Debug)

There are 3 types of Mysql Server Compilation

* Standard: The MySQL-Standard binaries are recommended for most users, and include the InnoDB storage engine.
* Max:(not MaxDB, which is a cooperation with SAP) is mysqld-max Extended MySQL Server. The MySQL-Max binaries include additional features that may not have been as extensively tested or are not required for general usage.
* The MySQL-Debug binaries have been compiled with extra debug information, and are not intended for production use, because the included debugging code may cause reduced performance.

Source code specifics

MySQL is written in a mixture of C and C++. The SQL parser uses yacc and home-brewed lexer. A document describing some of the internal structures of the code and the coding guidelines is available from the MySQL web site.


 
Site Map | Policies | Contact