1.9. 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, and “SQL:2003” refers to
the current version of the standard. 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 13.2.3, “HANDLER
Syntax”.
We continue to support transactional and non-transactional
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 16, MySQL Cluster.
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 12.9, “XML Functions”.