MYSQL Introduction
MYSQL Introduction
MySQL
MySQL, the most popular Open Source SQL database management system, is developed,
distributed, and supported by Oracle Corporation.
The MySQL website (http://www.mysql.com/) provides the latest information about MySQL
software.
MySQL is a database management system.
A database is a structured collection of data. It may be anything from a simple
shopping list to a picture gallery or the vast amounts of information in a corporate
network. To add, access, and process data stored in a computer database, you
need a database management system such as MySQL Server. Since computers are
very good at handling large amounts of data, database management systems play a
central role in computing, as standalone utilities, or as parts of other applications.
MySQL Server was originally developed to handle large databases much faster than
existing solutions and has been successfully used in highly demanding production
environments for several years. Although under constant development, MySQL
2
Server today offers a rich and useful set of functions. Its connectivity, speed, and
security make MySQL Server highly suited for accessing databases on the Internet.
We also provide MySQL Server as an embedded multithreaded library that you can
link into your application to get a smaller, faster, easier-to-manage standalone
product.
The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”), but we do not mind
if you pronounce it as “my sequel” or in some other localized way.
Designed to be fully multithreaded using kernel threads, to easily use multiple CPUs
if they are available.
Uses very fast B-tree disk tables (MyISAM) with index compression.
Designed to make it relatively easy to add other storage engines. This is useful if
you want to provide an SQL interface for an in-house database.
Implements SQL functions using a highly optimized class library that should be as
fast as possible. Usually there is no memory allocation at all after query initialization.
Data Types
Many data types: signed/unsigned integers 1, 2, 3, 4, and 8 bytes
long, FLOAT, DOUBLE, CHAR, VARCHAR, BINARY, VARBINARY, TEXT, BLOB, DATE, TIM
E, DATETIME, TIMESTAMP, YEAR, SET, ENUM, and OpenGIS spatial types.
See Chapter 11, Data Types.
Fixed-length and variable-length string types.
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.