Archive for the ‘High Performance MySQL’ Category
A few people have asked me how it’s going, so I thought I’d just share it with everyone. Things are going great. I’m writing much more quickly than I thought I would be, and as a result I’m finding I have time to do more changes than I thought I could, which makes me happy. I should be finished drafting the chapters by the end of the year.
In particular, the faster than expected pace is giving me a chance to address one of the big weaknesses of the second edition. In many places, the second edition is a collection of facts and experiences. It says what and why, but it doesn’t convey a process or method, and it doesn’t teach you how to think about things and apply the results to situations beyond what the book covers. I’m finding a number of key areas to remedy that: performance optimization, profiling, indexing, high availability, scalability, and so on. I’m adding an explanation of the principles and consequences, and actually showing real case studies selected from the most interesting customer issues I’ve seen at Percona. These illustrate the process or method I explain, and then I wrap that up by pointing out the key bits and reinforcing why they’re important.
I’m also adding chapter summaries. Summaries are hard to write. They should synthesize, not restate, the main points, and they should organize the reader’s thoughts for the transition to the next chapter. I hope I’m doing a good enough job at this, but it’s bound to be better than the second edition, which didn’t have summaries.
Detailed outlining is saving me. After writing the second edition, I realized that I’d spent about four times as much time rewriting as I did writing. This time I did a lot of outlining before I went to the writing stage, down to the level of individual thoughts and the relationship between them — nearly prose level, but not quite. Prose is much harder to reorganize and cut-and-paste than bullet points, because it requires correct grammar. Outlining doesn’t have to be grammatically correct. The effort I put into outlining in exhaustive detail is definitely paying off. When I find a section or chapter that I want to rewrite instead of just updating, and I didn’t plan for that, I back off and go back to the outlining. It’s so much more efficient. For example, I just caught myself starting to spin my wheels on partitioning, which is a section that I decide to rewrite to convey a how-to-think approach instead of what-to-think. I noticed the inefficiency, went to the outline in a text file, came back to the chapter, and ended up finishing it very quickly.
Finally, and I never thought I’d say this, but I’m using Microsoft Word and it’s making my life easier. The copyeditors use Word, and I knew I was going to have to use something that reads and writes .doc files eventually, so I decided to just use Word all the way through. I threw up a virtualbox with Windows XP, went out and bought a copy of Word 2010 for $150 or so, and installed it. It runs great in the virtual machine, and it is so much better than Open Office it’s not even in the same league. It works very well, with a lot of features that really do enhance my productivity. It isn’t Free Software, but maybe I’m growing up and coming to terms with the real world: sometimes getting things done is more important than principles, and $150 is less valuable than the time I’m saving. (I knew that I definitely was not going to use Open Office this time around, no matter what. I was planning on plain-text and Vim. But Word is actually more productive, I believe, by the time I factor in the interaction with the editors and other back-and-forth.)
I have just signed the contract for High Performance MySQL, Third Edition. The third edition will include major updates and new content in these areas:
- Recent performance and reliability advances, particularly in MySQL 5.5 and the InnoDB storage engine.
- A new chapter on using MySQL in cloud computing environments.
- Updates on modern hardware, including many CPUs, large memory, and solid-state storage.
- Improvements in clustering and high availability, including middleware and third-party solutions.
- Improvements in replication.
- New material on profiling MySQL, benchmarking, and tools and techniques to help you measure, monitor, and manage your MySQL installations.
The book will be available for purchase early next year. It’s been a great three years since the second edition was published, and although it’s selling strongly and is still referred to as “the” book for MySQL performance, it’s outdated and needs to be revised. And frankly I’ve learned a lot since 2008. The third edition will again be our best effort to give away everything we know, and help you help yourself as much as you can.
Some of them were sold quite a while ago, and some are more recent. Portuguese was the first. I’m looking forward to learning all these languages (except for Spanish, which I already sort of know) so I can read the book in them… in my copious spare time!