- Paperback: 258 pages
- Publisher: O'Reilly Media; 1 edition (April 20, 2007)
- Language: English
- ISBN-10: 0596009577
- ISBN-13: 978-0596009571
- Product Dimensions: 7 x 0.6 x 9.2 inches
- Shipping Weight: 15.2 ounces (View shipping rates and policies)
- Average Customer Review: 7 customer reviews
- Amazon Best Sellers Rank: #1,319,108 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Understanding MySQL Internals: Discovering and Improving a Great Database 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
About the Author
Sasha Pachev graduated from the Brigham Young University in 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 onMySQL.
In spite of his great interest in computers, Sasha is equallypassionate 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.
Browse award-winning titles. See more
Top customer reviews
operation. Learned a lot through code review & trial and error! Recently
purchased this book and it is excellent! Wish we had it months ago.
The author knows what he's talking about. Provides a great overview of the
architecture, file and subsystem layout. Also provides great information on using the 'built in' debug capability of the server -- very useful!
I was expecting to be disappointed, I was not. The content was right
on the mark for those folks interested on working on server internals.
After reading this book you should be comfortable enough to tackle the source, and you'll also have deep understanding of the storage engines and how to configure them, how the query parser works, how the optimizer decides on the execution plan, and much more. This is a must read for any DBA, or a programmer who wants to see a great example of a high-performance, reliable UNIX server.
Starting with an overview of MySQL history and architecture, the book quickly moves us through working with the source code to build and run the product in a debugger. Drawing on his deep experience with the software, Mr. Pachev explains the coding conventions used to develop MySQL and why you should use them when modifying the software yourself.
The author delineates the different functional "modules" (a term he coined himself to better explain the database, technically speaking there are no defined modules in MySQL's architecture) of MySQL and how they interrelate. Herein lies the key to how this book teaches the reader the vast intricacy of such a complex piece of software. The author recognizes the subject is huge and the source code changing. What he does in the book is serve as our tour guide, driving us through the various areas and explaining as much relevant information as he reasonably can. He constantly illustrates key pieces of source code and data structures; but perhaps more importantly he makes reference to the actual source files utilized by each functional component of the system, while encouraging us to explore further on our own. His approach is very much "top down".
As he takes us on this tour, the author explains many of the design decisions behind the various MySQL components, often imparting the historical perspective behind them. I appreciate how, throughout the book, the author shares some of his "inside information" about MySQL's development. There is also a section where he examines the code stability of each module and speculates on what the future may hold for each module. The author's writing style is clear and easy to read. I found Understanding MySQL Internals interesting and fun, and surprisingly easy to read for a book covering such a sophisticated piece of software. The author also does a good job explaining the engineering trade-offs of different MySQL configurations. Speaking of configuration, the book shows you how to add your own configuration option to the mysqld daemon.
Chapter 7, the largest chapter in the book, is 41 pages long. It covers the MySQL storage engine interface. This chapter explains how to integrate your own custom storage engine into MySQL and contains the source code for two custom storage engine examples (one for MySQL 4.1, the other for version 5.1). You can download this source code from O'Reilly's web site. Despite this one long chapter, the book is surprising short, only 234 pages.
I believe this book has value outside of MySQL. It does a good job showing how MySQL is essentially a well designed piece of software: a high-performance, reliable Unix server. The book also touches on the multi-platform aspects of MySQL design. Those of you designing other types of server software may benefit from studying how MySQL is constructed.
This book isn't for everyone, but if you are serious about MySQL in particular or database software design in general then this title certainly deserves a look.