- Paperback: 712 pages
- Publisher: O'Reilly Media; 2 edition (June 28, 2008)
- Language: English
- ISBN-10: 0596101716
- ISBN-13: 978-0596101718
- Product Dimensions: 7 x 1.7 x 9.2 inches
- Shipping Weight: 2.5 pounds
- Average Customer Review: 33 customer reviews
Amazon Best Sellers Rank:
#627,033 in Books (See Top 100 in Books)
- #21 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Performance Optimization
- #68 in Books > Computers & Technology > Databases & Big Data > MySQL
- #97 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Structured Design
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.
High Performance MySQL: Optimization, Backups, Replication, and More 2nd Edition
Use the Amazon App to scan ISBNs and compare prices.
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and Amazon Prime.
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
There is a newer edition of this item:
Customers who bought this item also bought
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
The Path to Optimal Queries and Robust Servers
About the Author
Baron Schwartz is a software engineer who lives in Charlottesville, Virginia and goes by the online handle of "Xaprb," which is his first name typed in QWERTY on a Dvorak keyboard. When he's not busy solving a fun programming challenge, he relaxes with his wife Lynn and dog Carbon. He blogs about software engineering at http://www.xaprb.com/blog/.
A former manager of the High Performace Group at MySQL AB, Peter Zaitsev now runs the mysqlperformanceblog.com site. He specializes in helping administrators fix issues with Web sites handling millions of visitors a day, dealing with terabytes of data using hundreds of servers. He is used to making changes and upgrades both to hardware to software (such as query optimization) in order to find solutions. He also speaks frequently at conferences.
Vadim Tkachenko was a Performance Engineer in at MySQL AB. As an expert in multithreaded programming and synchronization, his primary tasks were benchmarks, profiling, and finding bottlenecks. He also worked on a number of features for performance monitoring and tuning, and getting MySQL to scale well on multiple CPUs.
Jeremy Zawodny and his two cats moved from Northwest Ohio to Silicon Valley in late 1999 so he could work for Yahoo!--just in time to witness the .com bubble bursting first-hand. He's been at Yahoo!® ever since, helping to put MySQL and other Open Source technologies to use in fun, interesting, and often very big ways. Starting with the popular and high-traffic Yahoo! Finance site, he worked to make MySQL part of the site's core infrastructure in large batch operations as well as real-time feed processing and serving content directly on the site. He then helped to spread "the MySQL religion" to numerous other groups within Yahoo!, including News, Personals, Sports, and Shopping. Nowadays he acts as Yahoo!'s MySQL guru, working with Yahoo!'s many engineering groups to get the most out of their MySQL deployments.
In 2000, he began writing for Linux Magazine and continues to do so today as a columnist and contributing editor. After over a year of active participation on the MySQL mailing list, he got the idea to write a book about MySQL. (How hard could it be, really?) You can still find him answering questions on the list today. Since 2001, Jeremy has been speaking about MySQL at various conferences (O'Reilly's Open Source Conference, PHPCon, The MySQL User Conference, etc.) and user groups in locations as far away as Bangalore, India. His favorite topics are performance tuning, replication, clustering, and backup/recovery. In more recent times, he's rediscovered his love of aviation, earning a Private Pilot Glider license in early 2003. Since then he's spent far too much of his free time flying gliders out of Hollister, California and Truckee, near Lake Tahoe. He hopes to soon earn his Commercial Pilot license and then go on to become a certified flight instructor someday. Occasional MySQL consulting also helps to pay for his flying addiction.
Jeremy rambles almost daily about technology and life in general on his weblog: www.jeremy.zawodny.com/blog/
Arjen Lentz was born in Amsterdam but has lived in Queensland Australia since the turn of the millennium, sharing his life these days with his beautiful daughter Phoebe and black cat Figaro. Originally a C programmer, Arjen was employee #25 at MySQL AB (2001-2007). After a brief break in 2007, Arjen founded Open Query (http://openquery.com.au), which develops and provides its own data management training and consulting services in the Asia Pacific region and beyond. Arjen also regularly speaks at conferences and user groups. In his abundant spare time Arjen indulges in cooking, gardening, reading, camping, and exploring the RepRap. Arjen's weblog is at http://arjen-lentz.livejournal.com/
Derek J. Balling has been a Linux system administrator since 1996. Hehas helped build and maintain server infrastructure for companies likeYahoo, and institutions like Vassar College. He has also writtenarticles for The Perl Journal and a number of online magazines, and ison the Program Committee for the 2008 LISA Conference. He is currentlyemployed as the Data Center Manager for Answers.com.
When not working on computer-related issues, Derek enjoys spendingtime with his wife Debbie, and their posse of animals (4 cats and adog). He also makes his opinion known on current events or whatever isannoying him lately on his blog at http://blog.megacity.org/.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
Digging into the book I would say I was an intermediate DBA. With 12 years experience on Oracle I was a seasoned DBA. And although I've used MySQL for about 10 years, I had not used all of the high end or newest 5.0 and 5.1 features. After reading this book, or while reading it, you'll be ready to dig into everything from MySQL master-master replication (not to be confused with multi-master), creating a logging server, optimizing your query cache, or even using some of the Google MySQL patches to add some much needed but missing feature to MySQL.
The book is organized pretty well. Keep in mind that this is not a beginner book. If you're looking for more general across the board MySQL book, I'd recommend the APress Pro MySQL by Kruckenberg and Pipes Pro MySQL (Expert's Voice in Open Source). It is also very good, but hits more of the beginning topics (as well as some advanced ones). So given the intermediate to advanced audience, this book dives right into benchmarking and profiling at the beginning.
Queries... those pesky SQL commands that you send to your database. They're so important to performance, yet so sadly misunderstood. This book devotes two chapters to the topic, one about schema and index optimization, and one about query performance. These two work together. You need to understand indexing to make best use of them, and how to write good queries to get only the data you need. The indexing chapter hit on index types supported by MyISAM, and ones for InnoDB. It talked about rebuilding, and when it's important, and statistics, and how they are different across the different storage engines. And this is a key point. Going into this book with my Oracle background, I had a lot of questions about how the optimizing engine aka the cost-based optimizer, works and interacts with the storage engines. It's all laid out here in clear detail. It was pretty obvious that these others are closely involved with the actual database development, and/or interviewed some of them to get the information correct. This is something I've had a hard time finding in other books, and really key to understanding how to optimize and tune queries. Where does the query cache sit, when and how are queries parsed, when does the optimizer pickup statistics, and how does it use them. You'll learn all the ins and outs of the explain facility, which you'll of course need to know to tune queries.
The next chapter on advanced features covered the query cache in detail, how to set it up, how to tune it, and how to monitor it. The chapter also covers UDFs, cursors, stored procedures, views, full-text searching, merge tables, partitioning and so on. One other topic it really investigated was distributed (XA) transactions. You might at first think these are an advanced topic that most users don't need to know about unless your application uses them. After all, who needs to query tables in a remote database when your application can connect and do that? Well it turns out MySQL is using XA transactions internally all the time within it's storage engine architecture. One case is when you have a transaction which uses two storage engines, ie tables with different storage engine attributes. But that's not all. MySQL also treats the binary log mechanism to be a storage engine in it's own right, so interaction between your InnoDB table transactions, and the binary log is effectively an XA transaction.
The next two chapters talk about server settings, and optimizing the OS and Hardware. All important topics, and given substantial coverage. Hand these chapters to your storage engine guru, system administrator or read them yourself if you wear all those hats!
A chapter on Replication, of course we expected to find a. What you'll be glad about is that it's 65 pages of the nuts and bolts of using replication after the five minutes it took you to set it up in MySQL. It'll help you keep your databases in sync, and help you identify them when they're not. What, my replication slaves might be out of sync? There is also coverage of the new row-based replication, and how it may help alleviate many of the current limitations of MySQL replication. There is also solid coverage of various replication topologies, from single master and many slaves, to distributed master, master-master, and how to create a logging server. You'll also learn why MySQL doesn't support multi-master replication, which is where both masters received updates, and are forced to resolve conflicts, and a whole host of new problems.
After that come a few chapters on topics outside the database tier, but equally important, from load balancing, to HA, tuning your webserver to caching and so on.
The finishing chapters include backup, security, and using the built-in server status commands. And finally a chapter on other tools for interacting with and monitoring your MySQL database.
Ok, great... a wonderful book. Any criticisms. Well I save those for last because they're really minor. If you read the book cover-to-cover you'll probably take notes like I did, so you'll be doing your own summarization. But at the end of various chapters, so chock full of new and very useful information, I sometimes wished there was exactly that, a summary of the topics, and quick list of bulletpoints. That would give one an easy way to look up advice for tuning specific areas and so on.
All-in-all though this book is really a tour de force for understanding MySQL database technology. Go get a copy!
There were a couple of places where the writing was hard to follow, but I'm sure that'll be fixed in the next printing.
If you have read basic text books on mysql and other databases and still feel deprived or lacking of database knowledge. This book will help with optimizing your queries and making your web apps or IT system run much faster and efficient.
On a side not, the world of data is changing almost every day. I would recommend learning about aws, hadoop hive, and other modern database systems that are becoming more widely used.
In my eyes, a thorough analysis of indexing techniques in Mysql 5+ must discuss the strategic opportunities afforded by index_merge. It would seem to me that this gives the developer the ability to simply index the fields they want indexed, without having to sweat left-precedence of combined indexes or trying to make long indexes that include all of the possibly needed indexes in an order that will satisfy all possible query combinations.
If limitations to the utility of index_merge make some of these possibilities not feasible, the book ought to at least give a rundown of the pros and cons of index_merge vs. compound indexes.
The near-total omission of a new feature that could have profound implications upon the most optimal way to query & index makes me recommend this book with a tablespoon of salt.