Understanding MySQL internals

Alexander Pachev · 2007

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

Read the paper · More papers on PaperTik