Review: MySQL Stored Procedure Programming by Harrison
This is the text of my amazon review, I gave it 4 stars.
Having worked in java and oracle with pl/sql some time ago, I’m in the “probably better not to use stored procedures” camp for most environments - but now that mysql offers them, I figured it was best to see how they tackled the problem and this o’reilly book looked good by authors with good credentials. And, fortunately, O’Reilly didn’t let me down - they’ve had really strong offerings recently after a bit of a bad spell and this book was no exception.
This book is well written and well organized - something too few books are these days! It focuses on incremental teaching, but sidesteps the pitfalls that many such books do by pointing out when certatin features are glossed over at this point to be further explained in a future chapter. This is the perfect way to handle that problem, but one so few books take the time to do, leaving you puzzling over whether or not you need to fully understand particular examples.
It’s divided into 4 sections. For me, the heart of the book was in the first 2. The first “Stored Programming Fundamentals” gives you the nuts and bolts of the language - loops, blocks, variables, error handling, etc.. Very well written, very well organized and easy to follow.
The second part “Stored Program Construction” goes into more detail with working examples of stored procedures and functions. More language details are brought to light, it demonstrates how to use transactions in this context and triggers are introduced and explained. These two sections were great, to the point and easy to follow. The only minor qualm I had was their only incidental discussion of scoping - they’d address it with a sentence here and a note there, leaving you to glean how things worked. It’s not complex, but a short paragraph dedicated to scope would have really been nice.
The third part, I think, was unnecessarily long. “Using MySQL Stored Programs in Applications” - this covered how to work in php, java, perl, python and .net. Which was great, but they put in about 150 pages, almost a quarter of the book to this task and almost all of it was dedicated to the basics of how to use databases in these languages. Very basic querying, etc. It wasn’t in the scope of the book and shouldn’t have been - the whole thing should have been a single chapter that just discussed how to work with stored programs in each of the languages.
The last section, “optimizing stored programs” was very good. It suffered a little bit from covering topics that shouldn’t have been in the book - but they cover it very well. SQL Tuning is given a lot of pages, but they very succinctly cover many bases in a very easy to grasp manner. They discuss how to use stored programs to increase security, and they dedicate a chapter to the actual mechanics of optimizing your stored program code (aside from optimizing the sql that it might include). They conclude on an excellent Best Practices chapter that gives you the authors’ insights on everything from development to style to sql practices. I really enjoy it when books include these, as it gives a lot of insight into how the authors think about programming and you can see where your thoughts coincided with and contradict - and hopefully (as was the case with this book) get you thinking a little bit more about things you might not be actively thinking about.
Overall this book is a great book. It’s biggest failing, if you can call it that, was including too much. I would have liked a book maybe 2/3 the size and more tightly focussed. There are many books on sql optimization and hordes of books and online resources dedicated to using mysql with various programming languages. An excellent book that gives a pretty balanced view of the pros and cons of stored programming (although they do show a slight bias towards the use of - but what can you expect? :).







