1.8. MySQL Standards Compliance
This section describes how MySQL relates to the ANSI/ISO SQL
standards. MySQL Server has many extensions to the SQL standard,
and here you can find out what they are and how to use them. You
can also find information about functionality missing from MySQL
Server, and how to work around some of the differences.
The SQL standard has been evolving since 1986 and several versions
exist. In this manual, “SQL-92” refers to the
standard released in 1992, “SQL:1999” refers to the
standard released in 1999, “SQL:2003” refers to the
standard released in 2003, and “SQL:2008” refers to
the most recent version of the standard, released in 2008. We use
the phrase “the SQL standard” or “standard
SQL” to mean the current version of the SQL Standard at any
time.
One of our main goals with the product is to continue to work
toward compliance with the SQL standard, but without sacrificing
speed or reliability. We are not afraid to add extensions to SQL
or support for non-SQL features if this greatly increases the
usability of MySQL Server for a large segment of our user base.
The HANDLER interface is an example
of this strategy. See Section 12.2.4, “HANDLER Syntax”.
We continue to support transactional and nontransactional
databases to satisfy both mission-critical 24/7 usage and heavy
Web or logging usage.
MySQL Server was originally designed to work with medium-sized
databases (10-100 million rows, or about 100MB per table) on small
computer systems. Today MySQL Server handles terabyte-sized
databases, but the code can also be compiled in a reduced version
suitable for hand-held and embedded devices. The compact design of
the MySQL server makes development in both directions possible
without any conflicts in the source tree.
Currently, we are not targeting real-time support, although MySQL
replication capabilities offer significant functionality.
MySQL supports high-availability database clustering using the
NDBCLUSTER storage engine. See
Chapter 17, MySQL Cluster NDB 6.X/7.X.
We are implementing XML functionality beginning in MySQL 5.1,
which supports most of the W3C XPath standard. We plan to increase
support for XML as part of future MySQL development. See
Section 11.10, “XML Functions”.