on July 10, 2004
As an Oracle DBA, I was looking for a book that can help me better understand MySQL core concepts and differences compared to my primary working platform. I was looking for a book with the flavor of Oracle Concepts Manual. I partially read official MySQL reference manual but didn't find (get?) all the answers (nor I really enjoyed reading it - sorry AB doc. team!).
I think this book filled my knowledge gap on MySQL perfectly. Actually, this book could easily bear different title, such as "MySQL concepts guide" or something like that. You'll probably read the book in a couple of days, thanks to the author's clear writing style.
Let me give you an example. Some technical topics are difficult to explain in a few sentences, like the one on letter I (Isolation) from ACID rules for 'safe' transactions. Just compare the explanation on "phantom reads" from this book with the one you'll find in Oracle Concepts Manual (freely available on-line from OTN). Now, which one did you understand on the first pass? ;-)
Thanks to clear and short explanations, right from the beginning of the book, I learned some important technical facts about MySQL that I could easily put in perspective with my Oracle background. For example:
-"All InnoDB tables have primary keys"
-"InnoDB tables are similar to Oracle index-organized tables."
-"MySQL will only ever use one index per table per query!"
-"MySQL doesn't cache rows for MyISAM tables, only indexes...as opposed to InnoDB"
-"...counts are very fast on MyISAM tables and slow on InnoDB tables..."
Obviously the chapters that I liked the most in this book are the ones that covers core things very well:
"2. Storage Engines",
"5. Query Performance" and
All other chapters are fine but not essential for my current use of MySQL (like the excellent chapter on replication where it's obvious that Jeremy poses vast practical experience with replication from his workplace at Yahoo!).
The only complaint that I have is the one on "Storage Engines" chapter. In my opinion multi storage engine architecture is the most important advantage of MySQL over all other database vendors
products. I wish author's went a little deeper with the details (and thanks but no thanks, I don't want to read source code ;-), especially InnoDB engine is not covered enough (hmm...or maybe it's just me, after all :-).
Overall this book is highly recommended to all DBAs, the existing MySQL DBAs as well as to all others that work with other RDBMS and want a fast way to pick the most important technical nuances of MySQL.
on June 6, 2004
While the authors go over the basics of MySQL briefly in the first couple of chapters this is not a book for the new MySQL administrator. It assumes a good deal of basic knowledge about MySQL. On the other hand, if you know the basics and need to get that extra knowledge to move your system from one that just works to one that truly performs then this book is for you. From the initial steps of benchmarking your system and tweaking the indexes the book moves on to improving your performance through optimizing queries and server performance tuning. This includes examining all aspects of your system from disk and file system selection to minor configuration changes that may make great changes in performance. Once the server is working at its optimum for your needs the book turns to how to scale your SQL system up to multiple servers and configure replication, load balancing, and high availability systems. The main text of the book ends with a section on backup, recovery, and security. If you need performance, reliability and security beyond the standard configuration and need to maximize throughput this is the book you will want to have at hand. "High Performance MySQL" is one of the best optimization and performance books available for the intermediate to advanced user of MySQL - very highly recommended.
on April 29, 2004
I had the pleasure of being one of the technical reviewers of the book, and seeing the book is now available it's probably a good time to give my opinion on their work.
This book is aimed at the MySQL developer/administrator who has a server in place and now needs to start squeezing more performance out of it. I would say this is a pretty common demographic and the book addresses this group extremely well. I wish I had a copy of this book when I got into that phase, and even now I find myself pulling out my copy to look up some of the good tips and tricks that fill this book.
The ordering of the chapters is effective and leads the user through the stages of tweaking a server. This book does not really cover the absolute basics such as SELECT syntax, which suits me just fine.
The authors start out with a very in-depth discussion of table-types. They not only give the features of each table type, they also discuss the benefits and tradeoffs involved in choosing among the various table types. Transactions are covered in detail, including a rundown of the different isolation levels and how to choose the best isolation level for your application. I particularly liked that the table type choices were discussed in terms of scenarios that the reader may encounter, such as logging, catalogs, and even CD-ROM based content.
The authors wisely put a chapter on benchmarking right at the start of the book. Without having some idea of proper benchmarking techniques it can be very difficult to determine what changes benefit your servers performance. This book covers not only benchmarking methodology but also some of the more common benchmarking tools available to a MySQL administrator.
Indexing is one of the first and more effective ways to improve query performance, and the authors cover the subject quite well. Not only are typical indexing techniques covered, but there are also great explanations of how things work "under the hood". We learn of the various indexing methods in use with the server, such as B-TREEs, Hash tables, and clustered indexes.
Now that the reader has a firm grasp on how indexing works and how to benchmark queries, the authors introduce us to the concept of query analysis. The authors explain how the MySQL query optimizer works to execute a query and then give an extensive discussion of using the EXPLAIN system and how to use it to determine whether your queries are fully optimized. Advice is given on various ways to improve query performance, including use of the query cache.
Of particular interest to me was chapter 6: Server Performance. This chapter covers everything from choosing memory to selecting a file system for your database server. There is good advice on selecting disks and choosing RAID systems. The chapter also does a great job of covering how to identify and deal with bottlenecks, whether at the CPU, file, or kernel levels. This chapter is a must-read for anyone looking at purchasing a new machine to host a MySQL database, as it gives excellent tips regarding what choices you need to make when choosing server components.
Jeremy Zawodny knows replication. Through his work at Yahoo he has been of MySQL AB's largest users of replication, and his feedback to the MySQL development team has made it's way into the end product we currently use in MySQL 4.1. This degree of experience is obvious in chapter 7: Replication. There is great coverage of the steps needed to create a replication scheme, and there is a great discussion of the different replication layouts available to you when configuring multiple servers in a replication scheme. In addition to providing excellent coverage of setting up replication, there is also great coverage of monitoring and troubleshooting replication.
Chapter 8 takes replication a step further by introducing the concept of load balancing and high availability. A thorough discussion of load balancing is given and various high-availability solutions are discussed. The authors provide great coverage of load-balancing concepts and cover some of the pitfalls you may encounter if you are only accustomed to HTTP load balancing (which can vary greatly from MySQL load balancing).
If you pick this book up off the shelf at a bookstore but can't afford to buy it, make sure you read chapter 9. A DBA's most vital task is performing backups and other disaster prevention tasks. Chapter 9 covers all the standard backup tools available with MySQL, and also gives great coverage of how you can roll your own backup solution.
The main body of the book is rounded out with chapter 10: Security. The security chapter covers not only the basics of MySQL authentication, it covers some advanced scenarios and helps the reader understand the internal workings of MySQL authentication mechanisms. In addition to covering MySQL security mechanisms, the chapter goes on to discuss operating system security and security concepts such as data encryption. A brief tutorial is even given for setting a MySQL server up in a chroot environment for increased security.
All in all I thought this book was excellent. Windows users with very little background in Linux or other UNIX-like operating systems may encounter unfamiliar terms and sections that are not relevant (for example, the mytop utility covered in Appendix B is not available for Windows), but Windows users should still get a lot out of this book (besides, if you need high-performance from MySQL you should not be using Windows as your base OS). I found the book to be an excellent read and highly recommend it.
And finally, I I had no problem with Zawodny & Balling not pointing out MySQL's limitations: This book is for existing MySQL Administrators, who will already be aware of it's limitations. In addition, the features mentioned are already available in MySQL 4 and/or 5, available for download from the MySQL web site.
on April 28, 2004
MySQL has been gaining many adherents in recent years. The attraction of its open source and free nature is compelling to many. So much so that it is part of the so-called LAMP, with Linux, Apache and PHP. It does not have many advanced features that Oracle and IBM's dB2 possess. But what it has often suffices for many purposes. The intent of this book is to go beyond the material often covered in an introductory MySQL text, whose main purpose is to teach syntax.
The book shows how you can tune the performance by adjusting the sizes of various buffers, and other tweaks. Combine this with a means of load balancing and you have a database capable of mission critical commercial applications. It also discusses backups. Mundane, actually. But you need to be able to do this, in anticipation of the inevitable crash. If you need a mirror, the replication capability comes in handy. The book shows how to easily do this.
But for a book that talks about advanced features, it would have been nice if it had briefly spent some time explaining certain crucial features currently lacking. Like no means of doing stored procedures. This is an important optimisation ability in other databases. Another thing lacking (except in a very limited context) is foreign keys. In the theory of databases, this is extensively used, and other databases do implement this.
Granted, the company MySQL.com is continuously adding functionality. In time, MySQL will probably have the above items. But until then, a book like this would usefully serve its readers by also explaining the current limitations.
on May 6, 2004
This is a very helpful and informative book. I learned a lot from it even though I have been using MySQL for nearly three years. I was able to improve the speed and performance of my server using the information provided by Jeremy and Derek.
The book contains a lot of very helpful information the theory and practice of MySQL replication. The authors clearly and explicitly describe how to setup and manage replication, and how to deal with failures and failover. There are plenty of architecture diagrams, accompanied by lucid descriptions of the good and bad points of each one.
The sections on query and server optimization are first class as well. There are plenty of vignettes drawn from Jeremy's real-world experience running MySQL at Yahoo.
My only criticism is that the book seemed too short. I can't identify any particular elements that they omitted. However, like a good novel, this book was over way too soon.
on July 3, 2004
There's mysql documenation, and then there's this book. This book is like taking having the opportunity to pick at a seasoned pro's brain! I have almost every MySQL book out there and while the others merely taught me how to use MySQL, this one taught me how to push make it work FAST and EFFICIENT!
I honestly couldn't believe how much insight and experience I gained from this book. Almost every single page was fun and easy to read. I can honestly say that I can design and build one (...) database now as a direct result of this book.
Thank you so much guys!
on June 30, 2004
I have read many books on MySQL and found this one the best. The book is perfect for me, Systems Architect, Oracle DBA. I found answers for most of my questions on MySQL from the systems, high performance, replication and other advance areas. The book is not for novice users, you need to have some experience in RDBMS to appreciate it. I plan on launching enterprise web site using MySQL, High Performance MySQL answers most of my questions and cleared doubts that I have had on MySQL.
on May 15, 2004
Finally a book that does not spend chapters telling you how to log into MySQL and create a table. I've been heavily using MySQL for 3 years, and know a lot about it, but have still learned significant things on nearly EVERY page of this book.
Jeremy has a massive amount of *experience* using MySQL in real world applications, and has figured out how to communicate that in writing.
Buy it and read it twice.
on April 19, 2004
Jeremy is the best! this books is full of valuable experiencs and insights. most mysql book out there simply copy and pasted the stuffs you can find from mysql.com, this book is different, it offers author's hands on experience on mysql (from his work in yahoo ) in a clear and easy to follow way.
on August 18, 2011
I was pleased with this purchase. It was a bargain and the book is full of useful information. The book arrived in good condition and the delivery estimate was quite accurate.