Although MySQL's source code is open in the sense of being publicly available, it's essentially closed to you if you don't understand it. In this book, Sasha Pachev -- a former member of the MySQL Development Team -- provides a comprehensive tour of MySQL 5 that shows you how to figure out the inner workings of this powerful database. You'll go right to heart of the database to learn how data structures and convenience functions operate, how to add new storage engines and configuration options, and much more.
The core of Understanding MySQL Internals begins with an Architecture Overview that provides a brief introduction of how the different components of MySQL work together. You then learn the steps for setting up a working compilable copy of the code that you can change and test at your pleasure. Other sections of the book cover:
* Core server classes, structures, and API
* The communication protocol between the client and the server
* Configuration variables, the controls of the server; includes a tutorial on how to add your own
* Thread-based request handling -- understanding threads and how they are used in MySQL
* An overview of MySQL storage engines
* The storage engine interface for integrating third-party storage engines
* The table lock manager
* The parser and optimizer for improving MySQL's performance
* Integrating a transactional storage engine into MySQL
* The internals of replication
Understanding MySQL Internals provides unprecedented opportunities for developers, DBAs, database application programmers, IT departments, software vendors, and computer science students to learn about the inner workings of this enterprise-proven database. With this book, you will soon reach a new level of comprehension regarding database development that will enable you to accomplish your goals. It's your guide to discovering and improving a great database.
Sprache
Verlagsort
Zielgruppe
Produkt-Hinweis
Broschur/Paperback
Klebebindung
Maße
Höhe: 235 mm
Breite: 179 mm
Dicke: 19 mm
Gewicht
ISBN-13
978-0-596-00957-1 (9780596009571)
Schweitzer Klassifikation
Inhaltsverzeichnis
Preface
1. MySQL History and Architecture
MySQL History
MySQL Architecture
2. Nuts and Bolts of Working with the MySQL Source Code
Unix Shell
BitKeeper
Preparing the System to Build MySQL from BitKeeper Tree
Building MySQL from BitKeeper Tree
Building from Source Distribution
Installing MySQL into a System Directory
Source Code Directory Layout
Preparing the System to Run MySQL in a Debugger
Debugger-Guided Source Tour
Basics of Working with gdb
Finding Things in the Source
Interesting Breakpoints and Variables
Making a Source Modification
Coding Guidelines
Keeping Your BitKeeper Repository Up to Date
Submitting a Patch
3. Core Classes, Structures, Variables, and APIs
THD
NET
TABLE
Field
Utility API Calls
Preprocessor Macros
Global Variables
4. Client/Server Communication
Protocol Overview
Packet Format
Relationship Between MySQL Protocol and OS Layer
Authenticating Handshake
Command Packet
Server Responses
5. Configuration Variables
Configuration Variables Tutorial
Interesting Aspects of Specific Configuration Variables
6. Thread-Based Request Handling
Threads Versus Processes
Implementation of Request Handling
Thread Programming Issues
7. The Storage Engine Interface
The handler Class
Adding a Custom Storage Engine to MySQL
8. Concurrent Access and Locking
Table Lock Manager
9. Parser and Optimizer
Parser
Optimizer
10. Storage Engines
Shared Aspects of Architecture
InnoDB
Memory (Heap)
MyISAM Merge
NDB
Archive
Federated
11. Transactions
Overview of Transactional Storage Engine Implementation
Implementing the handler Subclass
Defining the handlerton
Working with the Query Cache
Working with the Replication Binary Log
Avoiding Deadlocks
12. Replication
Overview
Statement-Based Versus Row-Based Replication
Two-Threaded Slave
Multi-Master
SQL Commands to Help Understand Replication
Binary Log Format
Creating a Custom Replication Utility
Index