MySQL
MySQL
On all platforms except Windows, MySQL ships with no GUI tools to administer
MySQL databases or manage data contained within the databases. Users may use the
included command line tools, or install MySQL Workbench via a separate download.
Many third party GUI tools are also available.
OVERVIEW:
MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-
brewed lexical analyzer. MySQL works on many system platforms, including AIX,
BSDi, FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, OS X, Microsoft
Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX,
Oracle Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos and
Tru64. A port of MySQL to OpenVMS also exists.
The MySQL server software itself and the client libraries use dual-licensing
distribution. They are offered under GPL version 2, beginning from 28 June 2000
(which in 2009 has been extended with a FLOSS License Exception) or to use a
proprietary license.
Support can be obtained from the official manual. Free support additionally is
available in different IRC channels and forums. Oracle offers paid support via its
MySQL Enterprise products. They differ in the scope of services and in price.
Additionally, a number of third party organisations exist to provide support and
services, including SkySQL Ab and Percona.
MySQL has received positive reviews, and reviewers noticed it "performs extremely
well in the average case." and that the "developer interfaces are there, and the
documentation (not to mention feedback in the real world via Web sites and the like)
is very, very good". It has also been tested to be a "fast, stable and true multi-user,
multi-threaded sql database server".
HISTORY:
MySQL was created by a Swedish company, MySQL AB, founded by David Axmark,
Allan Larsson and Michael "Monty" Widenius. The first version of MySQL appeared
on 23 May 1995. It was initially created for personal usage from mSQL based on the
low-level language ISAM, which the creators considered too slow and inflexible.
They created a new SQL interface, while keeping the same API as mSQL. By keeping
the API consistent with the mSQL system, many developers were able to use MySQL
instead of the (proprietarily licensed) mSQL antecedent.
DEPLOYMENT:
MySQL can be built and installed manually from source code, but this can be tedious
so it is more commonly installed from a binary package unless special customizations
are required. On most Linux distributions, the package management system can
download and install MySQL with minimal effort, though further configuration is
often required to adjust security and optimization settings.
FEATUES:
MySQL is offered under two different editions: the open source MySQL Community
Server and the proprietary Enterprise Server. MySQL Enterprise Server is
differentiated by a series of proprietary extensions which install as server plugins, but
otherwise shares the version numbering system and is built from the same code base.
USER INTERFACE:
Graphical user interfaces
A graphical user interface (GUI) is a type of interface that allows users to interact with
electronic devices or programs through graphical icons and visual indicators such as
secondary notation, as opposed to text-based interfaces, typed command labels or text
navigation. GUIs are easier to learn than command-line interfaces which require
commands to be typed on the keyboard.
Command-line interfaces
A command-line interface is a means of interacting with a computer program where
the user issues commands to the program by typing in successive lines of text
(command lines). MySQL ships with many command line tools, from which the main
interface is the mysql client.
LIMITATION:
Like other SQL databases, MySQL does not currently comply with the full SQL
standard for some of the implemented functionality, including foreign key references
when using some storage engines other than the default of InnoDB, and check
constraints.
Up until MySQL 5.7, triggers are limited to one per action / timing, meaning that at
most one trigger can be defined to be executed after an INSERT operation, and one
before INSERT on the same table. No triggers can be defined on views.