In being multithreaded, MySQL has many advantages. A separate thread
handles each incoming connection with an extra thread that is always
running to manage the connections. Multiple clients can perform read
operations simultaneously without impacting one another. But write
operations, to a degree that depends on the type of table in use,
only hold up other clients that need access to the data being
updated. While any thread is writing to a table, all other threads
requesting access to that table simply wait until the table is free.
Your client can perform any allowed operation without concern for
other concurrent connections. The connection-managing thread prevents
other threads from reading or writing to a table in the middle of an
update.
Another advantage of this architecture is inherent to all
multithreaded applications: even though the threads share the same
process space, they execute individually. Because of this separation,
multiprocessor machines can spread the threads across many CPUs as
long as the host operating system supports multiple CPUs.
MySQL actually extends ANSI SQL with a few features. These features
include new functions (ENCRYPT,
WEEKDAY, IF, and others), the
ability to increment fields (AUTO_INCREMENT and
LAST_INSERT_ID), and case sensitivity.
Some SQL features found in the major database engines were omitted
intentionally from MySQL. For the longest time, transaction support
was the most notable omission. The latest releases of MySQL, however,
provide support for transactions. Stored procedures, another notable
omission, are scheduled for the 4.1 release that should be available
at the same time as this book. Finally, MySQL does not support most
additions to the SQL standard as of SQL3. The most important SQL3
feature missing from MySQL is support for object-oriented data types.
Since 1996, MySQL AB has been using MySQL internally in an
environment with more than 40 databases containing 10,000 tables. Of
these 10,000 tables, more than 500 contain over 7 million
records—about 100 GB of data.
 |  |  |
1.2. The History of MySQL |  | 1.4. MySQL Features |