xviii
■INTRODUCTION
common practices of how to test large systems. Specific examples are used to illustrate the
accepted practices of testing the MySQL system.
Part 2
Part 2, “Extending MySQL,” uses a hands-on approach to investigate the MySQL system. It
introduces you to how the MySQL code can be modified and how the system can be used as
an embedded database system. Examples and projects are used to illustrate how to debug the
source code, how to modify the SQL commands to extend the language, and how to build a
custom storage engine.
Chapter 5, “Debugging,” examines debugging skills and techniques that help make devel-
opment easier and less prone to failure. Several debugging techniques are presented, along
with the pros and cons of each.
Chapter 6, “Embedded MySQL,” provides a tutorial on embedding the MySQL system in
enterprise applications. Example projects assist you in applying the skills you’ll learn to your
own integration needs.
Chapter 7, “Building Your Own Storage Engine,” is the first of the MySQL modification
chapters. It demonstrates techniques that require the least amount of modifications to the
MySQL code. The MySQL pluggable storage engine capability is explored, using examples and
projects that permit you to build a sample storage engine.
Chapter 8, “Adding Functions and Commands to MySQL,” presents the most popular
modification to the MySQL code. You are shown how to modify the SQL commands and how to
build custom SQL commands. The chapter includes examples of how to modify SQL commands
to add new parameters, functions, and new commands.
Part 3
Part 3, “Advanced Database Internals,” takes a deeper look into the MySQL system and provides
you with an insider’s look at what makes the system work. The part begins with an introduction
to the advanced database technologies. Theory and practices are presented in a no-nonsense
manner to enable you to apply the knowledge gained to tackle the more complex topics of
database systems. This part also presents examples of how to implement an internal query
representation, an alternative query optimizer, and an alternative query execution mechanism.
Examples and projects are discussed in detail. Chapters 10 through 12 show you how to alter
the internal structure of the MySQL system to implement an alternative query processing
mechanism. These chapters provide you with a unique insight into how large systems can be
built and modified.
Chapter 9, “Database Systems Internals,” presents advanced database techniques and
examines the MySQL architecture. Topics include query execution, multiuser concerns, and
programmatic considerations.
Chapter 10, “Internal Query Representation,” discusses the MySQL internal query repre-
sentation. You are provided with an example alternative query representation. A discussion is
included of how to alter the MySQL source code to implement an alternative query representation.
Chapter 11, “Query Optimization,” presents the MySQL internal query optimizer. The chapter
includes an example alternative query optimizer that uses the alternative query representation
from the previous chapter. You’ll learn how to alter the MySQL source code to implement the
alternative query optimizer.
Bell_741-9FRONT.fm Page xviii Friday, December 22, 2006 2:40 PM