Understanding MySQL Internals: Discovering and Improving a Great Database

Understanding MySQL Internals: Discovering and Improving a Great Database

by Sasha Pachev
Understanding MySQL Internals: Discovering and Improving a Great Database

Understanding MySQL Internals: Discovering and Improving a Great Database

by Sasha Pachev

Paperback

$49.99 
  • SHIP THIS ITEM
    Qualifies for Free Shipping
  • PICK UP IN STORE
    Check Availability at Nearby Stores

Related collections and offers


Overview

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.


Product Details

ISBN-13: 9780596009571
Publisher: O'Reilly Media, Incorporated
Publication date: 04/01/2007
Pages: 254
Product dimensions: 7.00(w) x 9.19(h) x 0.61(d)

About the Author

Sasha Pachev graduated from the Brigham Young Universityin 1998 with a degree in Computer Science, worked on the MySQL development team in 2000-2002, and was the original developer of replication in MySQL. In 2003 he wrote his first book MySQL Enterprise Solutions. He currently lives in Provo, Utah with his wife Sarah and his five children working as an independent consultant with the emphasis on
MySQL.



In spite of his great interest in computers, Sasha is equally passionate about distance running. He has won a number of marathons, has a personal best of 2:24:47, and is attempting to qualify for the US Olympic Trials. He feels it is important to help other runners reach their potential, and operates a web site http://FastRunningBlog.Com dedicated to that purpose.

Table of Contents

; Preface; How This Book Is Organized; Who This Book Is For; Conventions Used in This Book; Using Code Examples; Comments and Questions; Safari® Enabled; Acknowledgments; Chapter 1: MySQL History and Architecturel; 1.1 MySQL History; 1.2 MySQL Architecture; Chapter 2: Nuts and Bolts of Working with the MySQL Source Code; 2.1 Unix Shell; 2.2 BitKeeper; 2.3 Preparing the System to Build MySQL from BitKeeper Tree; 2.4 Building MySQL from BitKeeper Tree; 2.5 Building from Source Distribution; 2.6 Installing MySQL into a System Directory; 2.7 Source Code Directory Layout; 2.8 Preparing the System to Run MySQL in a Debugger; 2.9 Debugger-Guided Source Tour; 2.10 Basics of Working with gdb; 2.11 Finding Things in the Source; 2.12 Interesting Breakpoints and Variables; 2.13 Making a Source Modification; 2.14 Coding Guidelines; 2.15 Keeping Your BitKeeper Repository Up to Date; 2.16 Submitting a Patch; Chapter 3: Core Classes, Structures, Variables, and APIs; 3.1 THD; 3.2 NET; 3.3 TABLE; 3.4 Field; 3.5 Utility API Calls; 3.6 Preprocessor Macros; 3.7 Global Variables; Chapter 4: Client/Server Communication; 4.1 Protocol Overview; 4.2 Packet Format; 4.3 Relationship Between MySQL Protocol and OS Layer; 4.4 Authenticating Handshake; 4.5 Command Packet; 4.6 Server Responses; Chapter 5: Configuration Variables; 5.1 Configuration Variables Tutorial; 5.2 Interesting Aspects of Specific Configuration Variables; Chapter 6: Thread-Based Request Handling; 6.1 Threads Versus Processes; 6.2 Implementation of Request Handling; 6.3 Thread Programming Issues; Chapter 7: The Storage Engine Interface; 7.1 The handler Class; 7.2 Adding a Custom Storage Engine to MySQL; Chapter 8: Concurrent Access and Locking; 8.1 Table Lock Manager; Chapter 9: Parser and Optimizer; 9.1 Parser; 9.2 Optimizer; Chapter 10: Storage Engines; 10.1 Shared Aspects of Architecture; 10.2 InnoDB; 10.3 Memory (Heap); 10.4 MyISAM Merge; 10.5 NDB; 10.6 Archive; 10.7 Federated; Chapter 11: Transactions; 11.1 Overview of Transactional Storage Engine Implementation; 11.2 Implementing the handler Subclass; 11.3 Defining the handlerton; 11.4 Working with the Query Cache; 11.5 Working with the Replication Binary Log; 11.6 Avoiding Deadlocks; Chapter 12: Replication; 12.1 Overview; 12.2 Statement-Based Versus Row-Based Replication; 12.3 Two-Threaded Slave; 12.4 Multi-Master; 12.5 SQL Commands to Help Understand Replication; 12.6 Binary Log Format; 12.7 Creating a Custom Replication Utility; Colophon;
From the B&N Reads Blog

Customer Reviews